p_table <- function(tab_data, ...) {
tab_data_2 <- deparse(substitute(tab_data))
table_p <- do.call(CreateTableOne,
list(data = as.name(tab_data_2), includeNA = TRUE, ...))
table_p_out <- print(table_p,
showAllLevels = TRUE,
printToggle = FALSE)
kable(table_p_out,
align = "c")
}
uni_var <- function(test_var, data_imp) {
cat("_________________________________________________")
cat("\n")
cat(" \n##", test_var)
cat("\n")
cat("_________________________________________________")
cat("\n")
f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
as.name(test_var),
sep = " ~ " ))
data_imp_2 <- deparse(substitute(data_imp))
km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
print(km_fit)
cat("\n")
print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Univariable Cox Proportional Hazard Model for: ", test_var)
cat("\n")
cat("\n")
n_levels <- nlevels(data_imp[[test_var]])
if(n_levels == 1){
print("Only one level, no Cox model performed")
cat("\n")
} else {
cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
print(summary(cox_fit))
cat("\n")
do.call("ggforest",
list(model = cox_fit, data = as.name(data_imp_2)))
}
cat("\n")
cat("\n")
cat("\n")
cat(" \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
p <- do.call("ggsurvplot",
list(fit = km_fit, data = as.name(data_imp_2),
palette = "jco", censor = FALSE, legend = "right",
linetype = "strata", xlab = "Time (Months)"))
print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
"AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
"MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
"UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
"YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
"DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
"REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
"TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
"CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
"CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
"CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
"CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
"CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
"CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
"CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
"CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
"CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
"CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
"CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
"RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
"RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
"REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
"RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
"RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
"REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
"DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
"RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
"PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
"DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
"RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
"RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
"METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
"METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
NHLextr <- read_fwf('NCDBPUF_NHLExtr.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
breast <- read_fwf('NCDBPUF_Breast.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vulva <- read_fwf('NCDBPUF_Vulva.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
vagina <- read_fwf('NCDBPUF_Vagina.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
penis <- read_fwf('NCDBPUF_Penis.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otleuk <- read_fwf('NCDBPUF_OtLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
otheracuteleuk <- read_fwf('NCDBPUF_OtAcLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
ALL <- read_fwf('NCDBPUF_ALymLeuk.3.2016.0.dat',
fwf_widths(col.width, col_names = col.names.abr),
col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast,
vulva, vagina, penis, NHLextr, otleuk, otheracuteleuk, ALL)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina,
penis, NHLextr, otleuk, otheracuteleuk, ALL)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C000",
"C001",
"C002",
"C003",
"C004",
"C005",
"C006",
"C008",
"C009",
"C019",
"C020",
"C021",
"C022",
"C023",
"C024",
"C028",
"C029",
"C030",
"C031",
"C039",
"C040",
"C041",
"C048",
"C049",
"C050",
"C051",
"C052",
"C058",
"C059",
"C060",
"C061",
"C062",
"C068",
"C069",
"C079",
"C098",
"C099",
"C111",
"C142",
"C300",
"C379",
"C420",
"C422",
"C424",
#skin/melanoma
"C440", "C441", "C442", "C443", "C444", "C445",
"C446", "C447", "C448", "C449",
#breast - nipple
"C500",
#vagina/vulva
"C510", "C511", "C512", "C518", "C519", "C529",
#penis
"C600", "C601", "C602", "C608", "C609", "C639",
"C770",
"C771",
"C772",
"C773",
"C774",
"C775",
"C778",
"C779"),
SITE_TEXT = c(
"C00.0 External Lip: Upper NOS",
"C00.1 External Lip: Lower NOS",
"C00.2 External Lip: NOS",
"C00.3 Lip: Upper Mucosa",
"C00.4 Lip: Lower Mucosa",
"C00.5 Lip: Mucosa NOS",
"C00.6 Lip: Commissure",
"C00.8 Lip: Overlapping",
"C00.9 Lip NOS",
"C01.9 Tongue: Base NOS",
"C02.0 Tongue: Dorsal NOS",
"C02.1 Tongue: Border, Tip",
"C02.2 Tongue: Ventral NOS",
"C02.3 Tongue: Anterior NOS",
"C02.4 Lingual Tonsil",
"C02.8 Tongue: Overlapping",
"C02.9 Tongue: NOS",
"C03.0 Gum: Upper",
"C03.1 Gum: Lower",
"C03.9 Gum NOS",
"C04.0 Mouth: Anterior Floor",
"C04.1 Mouth: Lateral Floor",
"C04.8 Mouth: Overlapping Floor",
"C04.9 Floor of Mouth NOS",
"C05.0 Hard Palate",
"C05.1 Soft Palate NOS",
"C05.2 Uvula",
"C05.8 Palate: Overlapping",
"C05.9 Palate NOS",
"C06.0 Cheek Mucosa",
"C06.1 Mouth: Vestibule",
"C06.2 Retromolar Area",
"C06.8 Mouth: Other Overlapping",
"C06.9 Mouth NOS",
"C07.9 Parotid Gland",
"C09.8 Tonsil: Overlapping",
"C09.9 Tonsil NOS",
"C11.1 Nasopharynx: Poster Wall",
"C14.2 Waldeyer Ring",
"C30.0 Nasal Cavity",
"C37.9 Thymus",
"C42.0 Blood",
"C42.2 Spleen",
"C42.4 Hematopoietic NOS",
#skin
"C44.0 Skin of lip, NOS",
"C44.1 Eyelid",
"C44.2 External ear",
"C44.3 Skin of ear and unspecified parts of face",
"C44.4 Skin of scalp and neck",
"C44.5 Skin of trunk",
"C44.6 Skin of upper limb and shoulder",
"C44.7 Skin of lower limb and hip",
"C44.8 Overlapping lesion of skin",
"C44.9 Skin, NOS",
#breast
"C50.0 Nipple",
#vulva/vagina
"C51.0 Labium majus",
"C51.1 Labium minus",
"C51.2 Clitoris",
"C51.8 Overlapping lesion of vulva",
"C51.9 Vulva, NOS",
"C52.9 Vagina, NOS",
#penis
"C60.0 Prepuce",
"C60.1 Glans penis",
"C60.2 Body of penis",
"C60.8 Overlapping lesion of penis",
"C60.9 Penis",
"C63.2 Scrotum, NOS",
"C77.0 Lymph Nodes: HeadFaceNeck",
"C77.1 Intrathoracic Lymph Nodes",
"C77.2 Intra-abdominal LymphNodes",
"C77.3 Lymph Nodes of axilla or arm ",
"C77.4 Lymph Nodes: Leg",
"C77.5 Pelvic Lymph Nodes",
"C77.8 Lymph Nodes: multiple region",
"C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE)
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS", "RAD_REGIONAL_DOSE_CGY",
"RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS",
"DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
"RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
"Community Cancer Program" = "1",
"Comprehensive Comm Ca Program" = "2",
"Academic/Research Program" = "3",
"Integrated Network Ca Program" = "4",
"Other" = "9")) %>%
mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
"New England" = "1",
"Middle Atlantic" = "2",
"South Atlantic" = "3",
"East North Central" = "4",
"East South Central" = "5",
"West North Central" = "6",
"West South Central" = "7",
"Mountain" = "8",
"Pacific" = "9",
"out of US" = "0")) %>%
mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
"Northeast" = c("1", "2"),
"South" = c("3", "7"),
"Midwest" = c("4", "5", "6"),
"West" = c("8", "9"))) %>%
mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
mutate(SEX_F = fct_recode(SEX,
"Male" = "1",
"Female" = "2")) %>%
mutate(RACE_F = fct_collapse(RACE,
"White" = c("01"),
"Black" = c("02"),
"Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
"16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
"32", "96", "97"),
"Other/Unk" = c("03", "98", "99"))) %>%
mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
"Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
"No" = c("0"),
"Unknown" = c("9"))) %>%
mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
"None" = "0",
"Private" = "1",
"Medicaid" = "2",
"Medicare" = "3",
"Other Government" = "4",
"Unknown" = "9")) %>%
mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
"Private")) %>%
mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
"Less than $38,000" = "1",
"$38,000 - $47,999" = "2",
"$48,000 - $62,999" = "3",
"$63,000 +" = "4")) %>%
mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
"21% or more" = "1",
"13 - 20.9%" = "2",
"7 - 12.9%" = "3",
"Less than 7%" = "4")) %>%
mutate(U_R_F = fct_collapse(UR_CD_13,
"Metro" = c("1", "2", "3"),
"Urban" = c("4", "5", "6", "7"),
"Rural" = c("8", "9"))) %>%
mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
All_Part_Prim = c("10", "11", "12", "13",
"14", "20", "21", "22"),
Other_Facility = c("00"))) %>%
mutate(GRADE_F = fct_recode(GRADE,
"Gr I: Well Diff" = "1",
"Gr II: Mod Diff" = "2",
"Gr III: Poor Diff" = "3",
"Gr IV: Undiff/Anaplastic" = "4",
"NA/Unkown" = "9")) %>%
mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
"N_A" = "88")) %>%
mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
"1")) %>%
mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
"N_A" = "88")) %>%
mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
"N_A" = "88")) %>%
mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
"1")) %>%
mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
"N_A" = "88")) %>%
mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
"N_A" = "88")) %>%
mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
"N_A" = "88")) %>%
mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
"No Residual" = "0",
"Residual, NOS" = "1",
"Microscopic Resid" = "2",
"Macroscopic Resid" = "3",
"Not evaluable" = "7",
"No surg" = "8",
"Unknown" = "9")) %>%
mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
"Yes" = c("1", "2", "3"),
"No" = c("0"),
"No surg/Unk/NA" = c("7", "8", "9"))) %>%
mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
"No_Surg_or_No_Readmit" = "0",
"Unplan_Readmit_Same" = "1",
"Plan_Readmit_Same" = "2",
"PlanUnplan_Same" = "3",
"Unknown" = "4")) %>%
mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
"None" = "0",
"Beam Radiation" = "1",
"Radioactive Implants" = "2",
"Radioisotopes" = "3",
"Beam + Imp or Isotopes" = "4",
"Radiation, NOS" = "5",
"Unknown" = "9")) %>%
mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
"Alive_30" = "0",
"Dead_30" = "1",
"Unknown" = "9")) %>%
mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
"Alive_90" = "0",
"Dead_90" = "1",
"Unknown" = "9")) %>%
mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
"Neg_LymphVasc_Inv" = "0",
"Pos_LumphVasc_Inv" = "1",
"N_A" = "8",
"Unknown" = "9")) %>%
mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
"No_Surg" = "0",
"Robot_Assist" = "1",
"Robot_to_Open" = "2",
"Endo_Lap" = "3",
"Endo_Lap_to_Open" = "4",
"Open_Unknown" = "5",
"Unknown" = "9")) %>%
mutate(All = "All") %>%
mutate(All = factor(All)) %>%
mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
"Surg performed" = "0",
"Surg not recommended" = "1",
"No surg due to pt factors" = "2",
"No surg, pt died" = "5",
"Surg rec, not done" = "6",
"Surg rec, pt refused" = "7",
"Surg rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
"Yes",
ifelse(REASON_FOR_NO_SURGERY == "9",
"Ukn",
"No"))) %>%
mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
SURGERY_YN == "No" ~ FALSE,
TRUE ~ NA)) %>%
mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
"Rad performed" = "0",
"Rad not recommended" = "1",
"No Rad due to pt factors" = "2",
"No Rad, pt died" = "5",
"Rad rec, not done" = "6",
"Rad rec, pt refused" = "7",
"Rad rec, unk if done" = "8",
"Unknown" = "9")) %>%
mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
"Yes",
ifelse(REASON_FOR_NO_RADIATION == "9",
NA,
"No"))) %>%
mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
"None or Surg or Rad" = "0",
"Rad before Surg" = "2",
"Surg before Rad" = "3",
"Rad before and after Surg" = "4",
"Intraop Rad" = "5",
"Intraop Rad plus other" = "6",
"Unknown" = "9")) %>%
mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Surg Alone",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
"Rad Alone",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
"No Treatment",
ifelse(RX_SUMM_SURGRAD_SEQ == "2",
"Rad then Surg",
ifelse(RX_SUMM_SURGRAD_SEQ == "3",
"Surg then Rad",
ifelse(RX_SUMM_SURGRAD_SEQ == "4",
"Rad before and after Surg",
"Other"))))))) %>%
mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
"Surg Alone",
"Surg then Rad",
"Rad Alone")) %>%
mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
"No" = c("00", "82", "85", "86", "87"),
"Yes" = c("01", "02", "03"),
"Ukn" = c("88", "99"))) %>%
mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Surg, No rad, No Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"Rad, No Surg, No Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
"No Surg, No Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
"Rad then Surg, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
"Surg then Rad, No Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
"Rad before and after Surg, No Chemo",
ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Surg, No rad, Yes Chemo",
ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"Rad, No Surg, Yes Chemo",
ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
"No Surg, No Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
"Rad then Surg, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
"Surg then Rad, Yes Chemo",
ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
"Rad before and after Surg, Yes Chemo",
"Other"))))))))))))) %>%
mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
mutate(T_SIZE = ifelse(T_SIZE == 0,
"No Tumor",
ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
"< 1 cm",
ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
"1-2 cm",
ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
"2-3 cm",
ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
"3-4 cm",
ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
"4-5 cm",
ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
"5-6 cm",
ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
T_SIZE == 980 | T_SIZE == 989 |
T_SIZE == 997,
">6 cm",
ifelse(T_SIZE == 988 | T_SIZE == 999,
"NA_unk",
"Microscopic focus")))))))))) %>%
mutate(T_SIZE = factor(T_SIZE)) %>%
mutate(T_SIZE = fct_relevel(T_SIZE,
"No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
"4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
CS_METS_DX_BONE == "1" ~ "Bone",
CS_METS_DX_BRAIN == "1" ~ "Brain",
CS_METS_DX_LIVER == "1" ~ "Liver",
TRUE ~ "None/Other/Unk/NA")) %>%
mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
"Non-Expansion State" = "0",
"Jan 2014 Expansion States" = "1",
"Early Expansion States (2010-13)" = "2",
"Late Expansion States (> Jan 2014)" = "3",
"Suppressed for Ages 0 - 39" = "9")) %>%
mutate(EXPN_GROUP = case_when(MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Jan 2014 Expansion States") &
YEAR_OF_DIAGNOSIS %in%
c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
MEDICAID_EXPN_CODE %in% c("Early Expansion States (2010-13)") &
YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") &
YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008",
"2009", "2010", "2011", "2012", "2013")) %>%
mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>%
mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE,
ifelse(CHEMO_YN == "Ukn", NA,
TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
"HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
"CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
"BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
"MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
mutate_at(fact_vars_2, funs(factor(.)))
Table of variables for all cases:
p_table(data,
vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY", "AGE", "AGE_F", "AGE_40",
"SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F",
"INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
"SITE_TEXT", "BEHAVIOR", "GRADE_F",
"DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
"TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
"TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
"DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
"READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
"PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS",
"LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
"SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
"MEDICAID_EXPN_CODE", "EXPN_GROUP"))
| n |
|
10607 |
| FACILITY_TYPE_F (%) |
Community Cancer Program |
368 ( 3.5) |
|
Comprehensive Comm Ca Program |
1652 ( 15.6) |
|
Academic/Research Program |
6246 ( 58.9) |
|
Integrated Network Ca Program |
611 ( 5.8) |
|
NA |
1730 ( 16.3) |
| FACILITY_LOCATION_F (%) |
New England |
634 ( 6.0) |
|
Middle Atlantic |
1960 ( 18.5) |
|
South Atlantic |
1891 ( 17.8) |
|
East North Central |
1535 ( 14.5) |
|
East South Central |
492 ( 4.6) |
|
West North Central |
570 ( 5.4) |
|
West South Central |
480 ( 4.5) |
|
Mountain |
443 ( 4.2) |
|
Pacific |
872 ( 8.2) |
|
NA |
1730 ( 16.3) |
| FACILITY_GEOGRAPHY (%) |
Northeast |
2594 ( 24.5) |
|
South |
2371 ( 22.4) |
|
Midwest |
2597 ( 24.5) |
|
West |
1315 ( 12.4) |
|
NA |
1730 ( 16.3) |
| AGE (mean (sd)) |
|
57.02 (17.60) |
| AGE_F (%) |
(0,54] |
4332 ( 40.8) |
|
(54,64] |
2437 ( 23.0) |
|
(64,74] |
2098 ( 19.8) |
|
(74,100] |
1735 ( 16.4) |
|
NA |
5 ( 0.0) |
| AGE_40 (%) |
(0,40] |
1844 ( 17.4) |
|
(40,100] |
8758 ( 82.6) |
|
NA |
5 ( 0.0) |
| SEX_F (%) |
Male |
6026 ( 56.8) |
|
Female |
4581 ( 43.2) |
| RACE_F (%) |
White |
8006 ( 75.5) |
|
Black |
1877 ( 17.7) |
|
Other/Unk |
409 ( 3.9) |
|
Asian |
315 ( 3.0) |
| HISPANIC (%) |
No |
9463 ( 89.2) |
|
Yes |
633 ( 6.0) |
|
Unknown |
511 ( 4.8) |
| INSURANCE_F (%) |
Private |
5618 ( 53.0) |
|
None |
365 ( 3.4) |
|
Medicaid |
622 ( 5.9) |
|
Medicare |
3580 ( 33.8) |
|
Other Government |
144 ( 1.4) |
|
Unknown |
278 ( 2.6) |
| INCOME_F (%) |
Less than $38,000 |
1757 ( 16.6) |
|
$38,000 - $47,999 |
2143 ( 20.2) |
|
$48,000 - $62,999 |
2786 ( 26.3) |
|
$63,000 + |
3861 ( 36.4) |
|
NA |
60 ( 0.6) |
| EDUCATION_F (%) |
21% or more |
1651 ( 15.6) |
|
13 - 20.9% |
2543 ( 24.0) |
|
7 - 12.9% |
3399 ( 32.0) |
|
Less than 7% |
2959 ( 27.9) |
|
NA |
55 ( 0.5) |
| U_R_F (%) |
Metro |
9027 ( 85.1) |
|
Urban |
1145 ( 10.8) |
|
Rural |
133 ( 1.3) |
|
NA |
302 ( 2.8) |
| CROWFLY (mean (sd)) |
|
40.56 (118.90) |
| CDCC_TOTAL_BEST (%) |
0 |
9485 ( 89.4) |
|
1 |
856 ( 8.1) |
|
2 |
192 ( 1.8) |
|
3 |
74 ( 0.7) |
| SITE_TEXT (%) |
C00.0 External Lip: Upper NOS |
0 ( 0.0) |
|
C00.1 External Lip: Lower NOS |
0 ( 0.0) |
|
C00.2 External Lip: NOS |
0 ( 0.0) |
|
C00.3 Lip: Upper Mucosa |
0 ( 0.0) |
|
C00.4 Lip: Lower Mucosa |
0 ( 0.0) |
|
C00.5 Lip: Mucosa NOS |
0 ( 0.0) |
|
C00.6 Lip: Commissure |
0 ( 0.0) |
|
C00.8 Lip: Overlapping |
0 ( 0.0) |
|
C00.9 Lip NOS |
0 ( 0.0) |
|
C01.9 Tongue: Base NOS |
0 ( 0.0) |
|
C02.0 Tongue: Dorsal NOS |
0 ( 0.0) |
|
C02.1 Tongue: Border, Tip |
0 ( 0.0) |
|
C02.2 Tongue: Ventral NOS |
0 ( 0.0) |
|
C02.3 Tongue: Anterior NOS |
0 ( 0.0) |
|
C02.4 Lingual Tonsil |
0 ( 0.0) |
|
C02.8 Tongue: Overlapping |
0 ( 0.0) |
|
C02.9 Tongue: NOS |
0 ( 0.0) |
|
C03.0 Gum: Upper |
0 ( 0.0) |
|
C03.1 Gum: Lower |
0 ( 0.0) |
|
C03.9 Gum NOS |
0 ( 0.0) |
|
C04.0 Mouth: Anterior Floor |
0 ( 0.0) |
|
C04.1 Mouth: Lateral Floor |
0 ( 0.0) |
|
C04.9 Floor of Mouth NOS |
0 ( 0.0) |
|
C05.0 Hard Palate |
0 ( 0.0) |
|
C05.1 Soft Palate NOS |
0 ( 0.0) |
|
C05.2 Uvula |
0 ( 0.0) |
|
C05.8 Palate: Overlapping |
0 ( 0.0) |
|
C05.9 Palate NOS |
0 ( 0.0) |
|
C06.0 Cheek Mucosa |
0 ( 0.0) |
|
C06.1 Mouth: Vestibule |
0 ( 0.0) |
|
C06.2 Retromolar Area |
0 ( 0.0) |
|
C06.8 Mouth: Other Overlapping |
0 ( 0.0) |
|
C06.9 Mouth NOS |
0 ( 0.0) |
|
C07.9 Parotid Gland |
0 ( 0.0) |
|
C09.8 Tonsil: Overlapping |
0 ( 0.0) |
|
C09.9 Tonsil NOS |
0 ( 0.0) |
|
C11.1 Nasopharynx: Poster Wall |
0 ( 0.0) |
|
C14.2 Waldeyer Ring |
0 ( 0.0) |
|
C30.0 Nasal Cavity |
0 ( 0.0) |
|
C37.9 Thymus |
0 ( 0.0) |
|
C42.0 Blood |
0 ( 0.0) |
|
C42.2 Spleen |
0 ( 0.0) |
|
C42.4 Hematopoietic NOS |
0 ( 0.0) |
|
C44.0 Skin of lip, NOS |
38 ( 0.4) |
|
C44.1 Eyelid |
31 ( 0.3) |
|
C44.2 External ear |
51 ( 0.5) |
|
C44.3 Skin of ear and unspecified parts of face |
721 ( 6.8) |
|
C44.4 Skin of scalp and neck |
416 ( 3.9) |
|
C44.5 Skin of trunk |
1762 ( 16.6) |
|
C44.6 Skin of upper limb and shoulder |
866 ( 8.2) |
|
C44.7 Skin of lower limb and hip |
1210 ( 11.4) |
|
C44.8 Overlapping lesion of skin |
820 ( 7.7) |
|
C44.9 Skin, NOS |
4677 ( 44.1) |
|
C50.0 Nipple |
1 ( 0.0) |
|
C51.0 Labium majus |
0 ( 0.0) |
|
C51.1 Labium minus |
0 ( 0.0) |
|
C51.2 Clitoris |
0 ( 0.0) |
|
C51.8 Overlapping lesion of vulva |
0 ( 0.0) |
|
C51.9 Vulva, NOS |
6 ( 0.1) |
|
C52.9 Vagina, NOS |
2 ( 0.0) |
|
C60.0 Prepuce |
2 ( 0.0) |
|
C60.1 Glans penis |
0 ( 0.0) |
|
C60.2 Body of penis |
0 ( 0.0) |
|
C60.8 Overlapping lesion of penis |
0 ( 0.0) |
|
C60.9 Penis |
4 ( 0.0) |
|
C63.2 Scrotum, NOS |
0 ( 0.0) |
|
C77.0 Lymph Nodes: HeadFaceNeck |
0 ( 0.0) |
|
C77.1 Intrathoracic Lymph Nodes |
0 ( 0.0) |
|
C77.2 Intra-abdominal LymphNodes |
0 ( 0.0) |
|
C77.3 Lymph Nodes of axilla or arm |
0 ( 0.0) |
|
C77.4 Lymph Nodes: Leg |
0 ( 0.0) |
|
C77.5 Pelvic Lymph Nodes |
0 ( 0.0) |
|
C77.8 Lymph Nodes: multiple region |
0 ( 0.0) |
|
C77.9 Lymph Node NOS |
0 ( 0.0) |
| BEHAVIOR (%) |
2 |
0 ( 0.0) |
|
3 |
10607 (100.0) |
| GRADE_F (%) |
Gr I: Well Diff |
10 ( 0.1) |
|
Gr II: Mod Diff |
9 ( 0.1) |
|
Gr III: Poor Diff |
7 ( 0.1) |
|
Gr IV: Undiff/Anaplastic |
34 ( 0.3) |
|
5 |
7987 ( 75.3) |
|
6 |
311 ( 2.9) |
|
7 |
9 ( 0.1) |
|
8 |
59 ( 0.6) |
|
NA/Unkown |
2181 ( 20.6) |
| DX_STAGING_PROC_DAYS (mean (sd)) |
|
4.06 (53.56) |
| TNM_CLIN_T (%) |
N_A |
4716 ( 44.5) |
|
c0 |
0 ( 0.0) |
|
c1 |
1675 ( 15.8) |
|
c1A |
248 ( 2.3) |
|
c1B |
118 ( 1.1) |
|
c1C |
0 ( 0.0) |
|
c1MI |
0 ( 0.0) |
|
c2 |
810 ( 7.6) |
|
c2A |
82 ( 0.8) |
|
c2B |
112 ( 1.1) |
|
c2C |
0 ( 0.0) |
|
c2D |
0 ( 0.0) |
|
c3 |
399 ( 3.8) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c4 |
438 ( 4.1) |
|
c4A |
0 ( 0.0) |
|
c4B |
0 ( 0.0) |
|
c4C |
0 ( 0.0) |
|
c4D |
0 ( 0.0) |
|
cX |
1749 ( 16.5) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
NA |
260 ( 2.5) |
| TNM_CLIN_N (%) |
N_A |
4715 ( 44.5) |
|
c0 |
3400 ( 32.1) |
|
c1 |
194 ( 1.8) |
|
c1A |
10 ( 0.1) |
|
c1B |
9 ( 0.1) |
|
c2 |
33 ( 0.3) |
|
c2A |
1 ( 0.0) |
|
c2B |
6 ( 0.1) |
|
c2C |
0 ( 0.0) |
|
c3 |
62 ( 0.6) |
|
c3A |
0 ( 0.0) |
|
c3B |
0 ( 0.0) |
|
c3C |
0 ( 0.0) |
|
c4 |
0 ( 0.0) |
|
cX |
1933 ( 18.2) |
|
NA |
244 ( 2.3) |
| TNM_CLIN_M (%) |
N_A |
4715 ( 44.5) |
|
c0 |
5388 ( 50.8) |
|
c0I+ |
0 ( 0.0) |
|
c1 |
72 ( 0.7) |
|
c1A |
1 ( 0.0) |
|
c1B |
0 ( 0.0) |
|
c1C |
0 ( 0.0) |
|
NA |
431 ( 4.1) |
| TNM_CLIN_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
1472 ( 13.9) |
|
1A |
3752 ( 35.4) |
|
1B |
1345 ( 12.7) |
|
1C |
0 ( 0.0) |
|
2 |
141 ( 1.3) |
|
2A |
232 ( 2.2) |
|
2B |
510 ( 4.8) |
|
2C |
0 ( 0.0) |
|
3 |
139 ( 1.3) |
|
3A |
285 ( 2.7) |
|
3B |
132 ( 1.2) |
|
3C |
0 ( 0.0) |
|
4 |
357 ( 3.4) |
|
4A |
355 ( 3.3) |
|
4A1 |
75 ( 0.7) |
|
4A2 |
31 ( 0.3) |
|
4B |
176 ( 1.7) |
|
4C |
0 ( 0.0) |
|
N_A |
23 ( 0.2) |
|
99 |
1575 ( 14.8) |
|
NA |
7 ( 0.1) |
| TNM_PATH_T (%) |
N_A |
4655 ( 43.9) |
|
p0 |
0 ( 0.0) |
|
p1 |
786 ( 7.4) |
|
p1A |
89 ( 0.8) |
|
p1B |
41 ( 0.4) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
351 ( 3.3) |
|
p2A |
19 ( 0.2) |
|
p2B |
33 ( 0.3) |
|
p2C |
0 ( 0.0) |
|
p2D |
0 ( 0.0) |
|
p3 |
165 ( 1.6) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p4 |
196 ( 1.8) |
|
p4A |
0 ( 0.0) |
|
p4B |
0 ( 0.0) |
|
p4C |
0 ( 0.0) |
|
p4D |
0 ( 0.0) |
|
pA |
0 ( 0.0) |
|
pIS |
0 ( 0.0) |
|
pX |
2216 ( 20.9) |
|
NA |
2056 ( 19.4) |
| TNM_PATH_N (%) |
N_A |
4654 ( 43.9) |
|
p0 |
762 ( 7.2) |
|
p0I- |
0 ( 0.0) |
|
p0I+ |
0 ( 0.0) |
|
p0M- |
0 ( 0.0) |
|
p0M+ |
0 ( 0.0) |
|
p1 |
45 ( 0.4) |
|
p1A |
4 ( 0.0) |
|
p1B |
4 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
p1MI |
0 ( 0.0) |
|
p2 |
17 ( 0.2) |
|
p2A |
0 ( 0.0) |
|
p2B |
1 ( 0.0) |
|
p2C |
0 ( 0.0) |
|
p3 |
18 ( 0.2) |
|
p3A |
0 ( 0.0) |
|
p3B |
0 ( 0.0) |
|
p3C |
0 ( 0.0) |
|
p4 |
0 ( 0.0) |
|
pX |
3131 ( 29.5) |
|
NA |
1971 ( 18.6) |
| TNM_PATH_M (%) |
N_A |
4467 ( 42.1) |
|
p0 |
0 ( 0.0) |
|
p1 |
32 ( 0.3) |
|
p1A |
0 ( 0.0) |
|
p1B |
0 ( 0.0) |
|
p1C |
0 ( 0.0) |
|
pX |
2330 ( 22.0) |
|
NA |
3778 ( 35.6) |
| TNM_PATH_STAGE_GROUP (%) |
0 |
0 ( 0.0) |
|
1 |
574 ( 5.4) |
|
1A |
1086 ( 10.2) |
|
1B |
321 ( 3.0) |
|
1C |
0 ( 0.0) |
|
2 |
61 ( 0.6) |
|
2A |
69 ( 0.7) |
|
2B |
141 ( 1.3) |
|
2C |
0 ( 0.0) |
|
3 |
54 ( 0.5) |
|
3A |
80 ( 0.8) |
|
3B |
49 ( 0.5) |
|
3C |
0 ( 0.0) |
|
4 |
152 ( 1.4) |
|
4A |
112 ( 1.1) |
|
4A1 |
1 ( 0.0) |
|
4B |
84 ( 0.8) |
|
4C |
0 ( 0.0) |
|
N_A |
21 ( 0.2) |
|
99 |
6553 ( 61.8) |
|
NA |
1249 ( 11.8) |
| DX_RX_STARTED_DAYS (mean (sd)) |
|
46.58 (69.45) |
| DX_SURG_STARTED_DAYS (mean (sd)) |
|
16.09 (39.22) |
| DX_DEFSURG_STARTED_DAYS (mean (sd)) |
|
21.76 (48.11) |
| MARGINS (%) |
No Residual |
794 ( 7.5) |
|
Residual, NOS |
166 ( 1.6) |
|
Microscopic Resid |
68 ( 0.6) |
|
Macroscopic Resid |
63 ( 0.6) |
|
Not evaluable |
418 ( 3.9) |
|
No surg |
8183 ( 77.1) |
|
Unknown |
915 ( 8.6) |
| MARGINS_YN (%) |
No |
794 ( 7.5) |
|
Yes |
297 ( 2.8) |
|
No surg/Unk/NA |
9516 ( 89.7) |
| SURG_DISCHARGE_DAYS (mean (sd)) |
|
1.68 (12.10) |
| READM_HOSP_30_DAYS_F (%) |
No_Surg_or_No_Readmit |
10284 ( 97.0) |
|
Unplan_Readmit_Same |
37 ( 0.3) |
|
Plan_Readmit_Same |
58 ( 0.5) |
|
PlanUnplan_Same |
1 ( 0.0) |
|
9 |
227 ( 2.1) |
| RX_SUMM_RADIATION_F (%) |
None |
7970 ( 75.1) |
|
Beam Radiation |
2495 ( 23.5) |
|
Radioactive Implants |
26 ( 0.2) |
|
Radioisotopes |
1 ( 0.0) |
|
Beam + Imp or Isotopes |
1 ( 0.0) |
|
Radiation, NOS |
52 ( 0.5) |
|
Unknown |
62 ( 0.6) |
| PUF_30_DAY_MORT_CD_F (%) |
Alive_30 |
1941 ( 18.3) |
|
Dead_30 |
9 ( 0.1) |
|
Unknown |
38 ( 0.4) |
|
NA |
8619 ( 81.3) |
| PUF_90_DAY_MORT_CD_F (%) |
Alive_90 |
1880 ( 17.7) |
|
Dead_90 |
34 ( 0.3) |
|
Unknown |
74 ( 0.7) |
|
NA |
8619 ( 81.3) |
| DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) |
|
51.17 (40.66) |
| LYMPH_VASCULAR_INVASION_F (%) |
Neg_LymphVasc_Inv |
0 ( 0.0) |
|
Pos_LumphVasc_Inv |
0 ( 0.0) |
|
N_A |
5920 ( 55.8) |
|
Unknown |
0 ( 0.0) |
|
NA |
4687 ( 44.2) |
| RX_HOSP_SURG_APPR_2010_F (%) |
No_Surg |
5006 ( 47.2) |
|
Robot_Assist |
0 ( 0.0) |
|
Robot_to_Open |
0 ( 0.0) |
|
Endo_Lap |
21 ( 0.2) |
|
Endo_Lap_to_Open |
2 ( 0.0) |
|
Open_Unknown |
800 ( 7.5) |
|
Unknown |
91 ( 0.9) |
|
NA |
4687 ( 44.2) |
| SURG_RAD_SEQ (%) |
Surg Alone |
1648 ( 15.5) |
|
Surg then Rad |
630 ( 5.9) |
|
Rad Alone |
1900 ( 17.9) |
|
No Treatment |
6259 ( 59.0) |
|
Other |
158 ( 1.5) |
|
Rad before and after Surg |
3 ( 0.0) |
|
Rad then Surg |
9 ( 0.1) |
| SURG_RAD_SEQ_C (%) |
Surg, No rad, No Chemo |
1253 ( 11.8) |
|
Surg then Rad, No Chemo |
507 ( 4.8) |
|
Surg then Rad, Yes Chemo |
109 ( 1.0) |
|
Surg, No rad, Yes Chemo |
335 ( 3.2) |
|
No Surg, No Rad, Yes Chemo |
2156 ( 20.3) |
|
No Surg, No Rad, No Chemo |
3929 ( 37.0) |
|
Other |
459 ( 4.3) |
|
Rad, No Surg, Yes Chemo |
463 ( 4.4) |
|
Rad, No Surg, No Chemo |
1385 ( 13.1) |
|
Rad then Surg, Yes Chemo |
0 ( 0.0) |
|
Rad then Surg, No Chemo |
8 ( 0.1) |
|
Rad before and after Surg, Yes Chemo |
0 ( 0.0) |
|
Rad before and after Surg, No Chemo |
3 ( 0.0) |
| SURGERY_YN (%) |
No |
8199 ( 77.3) |
|
Ukn |
99 ( 0.9) |
|
Yes |
2309 ( 21.8) |
| RADIATION_YN (%) |
No |
7963 ( 75.1) |
|
Yes |
2575 ( 24.3) |
|
NA |
69 ( 0.7) |
| CHEMO_YN (%) |
No |
7139 ( 67.3) |
|
Yes |
3109 ( 29.3) |
|
Ukn |
359 ( 3.4) |
| mets_at_dx (%) |
Bone |
9 ( 0.1) |
|
Brain |
0 ( 0.0) |
|
Liver |
4 ( 0.0) |
|
Lung |
6 ( 0.1) |
|
None/Other/Unk/NA |
10588 ( 99.8) |
| MEDICAID_EXPN_CODE (%) |
Non-Expansion State |
2960 ( 27.9) |
|
Jan 2014 Expansion States |
2959 ( 27.9) |
|
Early Expansion States (2010-13) |
1508 ( 14.2) |
|
Late Expansion States (> Jan 2014) |
1450 ( 13.7) |
|
Suppressed for Ages 0 - 39 |
1730 ( 16.3) |
| EXPN_GROUP (%) |
Exclude |
1730 ( 16.3) |
|
Post-Expansion |
1544 ( 14.6) |
|
Pre-Expansion |
7333 ( 69.1) |
preExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 1.535, df = 1, p-value = 0.2154
alternative hypothesis: two.sided
95 percent confidence interval:
-0.009741399 0.044483911
sample estimates:
prop 1 prop 2
0.4007909 0.3834197
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>%
filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>%
filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion
prop.test(c(preExpNoInsurance, postExpNoInsurance),
c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
2-sample test for equality of proportions with continuity correction
data: c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 12.465, df = 1, p-value = 0.0004147
alternative hypothesis: two.sided
95 percent confidence interval:
0.009399702 0.024969736
sample estimates:
prop 1 prop 2
0.03272876 0.01554404
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")
| n |
|
144 |
562 |
|
|
| DX_RX_STARTED_DAYS (mean (sd)) |
|
49.87 (39.28) |
46.72 (169.07) |
0.830 |
|
data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")
Kaplan Meier Analysis
All
uni_var(test_var = "All", data_imp = data)
_________________________________________________
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
n events median 0.95LCL 0.95UCL
10607 2719 NA 158 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ All, data = data)
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8499 847 0.915 0.00280 0.910 0.921
24 7096 543 0.854 0.00365 0.846 0.861
36 5814 383 0.805 0.00422 0.796 0.813
48 4740 269 0.764 0.00466 0.755 0.774
60 3814 200 0.729 0.00506 0.720 0.739
120 865 425 0.598 0.00754 0.584 0.613
## Univariable Cox Proportional Hazard Model for: All
[1] "Only one level, no Cox model performed"
## Unadjusted Kaplan Meier Overall Survival Curve for: All



Facility Type
uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
1730 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program 368 135 110 93 NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 1652 585 117 106 140
FACILITY_TYPE_F=Academic/Research Program 6246 1683 147 136 NA
FACILITY_TYPE_F=Integrated Network Ca Program 611 189 158 120 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
1730 observations deleted due to missingness
FACILITY_TYPE_F=Community Cancer Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 280 50 0.857 0.0187 0.822 0.895
24 239 24 0.782 0.0225 0.739 0.827
36 183 17 0.722 0.0251 0.675 0.773
48 158 9 0.685 0.0267 0.634 0.739
60 140 6 0.657 0.0279 0.605 0.714
120 28 29 0.444 0.0400 0.373 0.530
FACILITY_TYPE_F=Comprehensive Comm Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1291 208 0.868 0.00851 0.852 0.885
24 1058 116 0.787 0.01057 0.766 0.808
36 871 68 0.734 0.01166 0.711 0.757
48 705 51 0.688 0.01258 0.663 0.713
60 568 44 0.642 0.01353 0.616 0.669
120 143 89 0.488 0.01855 0.453 0.525
FACILITY_TYPE_F=Academic/Research Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4990 478 0.918 0.00359 0.911 0.925
24 4142 336 0.853 0.00479 0.844 0.862
36 3365 263 0.795 0.00564 0.784 0.806
48 2720 176 0.750 0.00625 0.738 0.763
60 2169 129 0.712 0.00680 0.699 0.725
120 458 265 0.570 0.01013 0.550 0.590
FACILITY_TYPE_F=Integrated Network Ca Program
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 490 67 0.885 0.0132 0.860 0.911
24 402 41 0.808 0.0167 0.776 0.841
36 334 17 0.771 0.0181 0.737 0.808
48 271 21 0.720 0.0201 0.682 0.761
60 217 12 0.686 0.0214 0.646 0.730
120 56 27 0.561 0.0294 0.506 0.621
## Univariable Cox Proportional Hazard Model for: FACILITY_TYPE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_TYPE_F, data = data)
n= 8877, number of events= 2592
(1730 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.02469 0.97561 0.09549 -0.259 0.79595
FACILITY_TYPE_FAcademic/Research Program -0.30824 0.73474 0.08946 -3.446 0.00057 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.18955 0.82733 0.11269 -1.682 0.09257 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9756 1.025 0.8091 1.1764
FACILITY_TYPE_FAcademic/Research Program 0.7347 1.361 0.6166 0.8756
FACILITY_TYPE_FIntegrated Network Ca Program 0.8273 1.209 0.6634 1.0318
Concordance= 0.536 (se = 0.005 )
Rsquare= 0.005 (max possible= 0.993 )
Likelihood ratio test= 40.53 on 3 df, p=8.231e-09
Wald test = 42.11 on 3 df, p=3.796e-09
Score (logrank) test = 42.39 on 3 df, p=3.316e-09
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_TYPE_F



Facility Location
uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
1730 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England 634 181 125 108.2 NA
FACILITY_LOCATION_F=Middle Atlantic 1960 496 132 115.2 NA
FACILITY_LOCATION_F=South Atlantic 1891 579 144 127.9 NA
FACILITY_LOCATION_F=East North Central 1535 478 138 125.6 NA
FACILITY_LOCATION_F=East South Central 492 159 148 108.9 NA
FACILITY_LOCATION_F=West North Central 570 184 115 92.8 NA
FACILITY_LOCATION_F=West South Central 480 141 130 114.7 NA
FACILITY_LOCATION_F=Mountain 443 113 NA 136.1 NA
FACILITY_LOCATION_F=Pacific 872 261 NA 115.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
1730 observations deleted due to missingness
FACILITY_LOCATION_F=New England
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 472 60 0.896 0.0127 0.872 0.922
24 381 38 0.819 0.0167 0.787 0.853
36 310 25 0.761 0.0191 0.725 0.800
48 247 18 0.714 0.0210 0.674 0.756
60 190 12 0.675 0.0227 0.632 0.721
120 33 26 0.525 0.0340 0.462 0.596
FACILITY_LOCATION_F=Middle Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1607 138 0.926 0.00610 0.914 0.938
24 1341 102 0.864 0.00822 0.848 0.880
36 1058 75 0.812 0.00969 0.793 0.831
48 798 54 0.765 0.01101 0.744 0.787
60 597 42 0.721 0.01234 0.697 0.745
120 91 78 0.535 0.02293 0.492 0.582
FACILITY_LOCATION_F=South Atlantic
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1509 173 0.903 0.00702 0.889 0.917
24 1251 116 0.830 0.00916 0.812 0.848
36 1046 86 0.770 0.01054 0.750 0.791
48 893 47 0.733 0.01132 0.712 0.756
60 743 42 0.697 0.01209 0.673 0.721
120 202 100 0.561 0.01627 0.530 0.594
FACILITY_LOCATION_F=East North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1238 161 0.890 0.00818 0.874 0.906
24 1060 75 0.834 0.00989 0.815 0.854
36 857 70 0.776 0.01140 0.754 0.799
48 724 41 0.737 0.01235 0.713 0.762
60 609 30 0.705 0.01315 0.679 0.731
120 135 92 0.541 0.01919 0.505 0.580
FACILITY_LOCATION_F=East South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 395 48 0.897 0.0141 0.870 0.925
24 330 38 0.808 0.0187 0.772 0.845
36 280 22 0.752 0.0209 0.712 0.794
48 220 13 0.714 0.0223 0.672 0.759
60 167 13 0.669 0.0242 0.623 0.718
120 45 22 0.534 0.0339 0.471 0.604
FACILITY_LOCATION_F=West North Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 419 69 0.869 0.0147 0.841 0.899
24 343 31 0.801 0.0179 0.767 0.837
36 287 20 0.752 0.0199 0.714 0.792
48 222 25 0.682 0.0225 0.639 0.728
60 171 12 0.641 0.0241 0.595 0.690
120 31 25 0.478 0.0358 0.412 0.553
FACILITY_LOCATION_F=West South Central
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 375 47 0.896 0.0144 0.868 0.924
24 298 34 0.809 0.0192 0.773 0.848
36 243 12 0.774 0.0210 0.734 0.816
48 196 19 0.709 0.0239 0.664 0.758
60 149 12 0.661 0.0260 0.612 0.714
120 22 14 0.546 0.0396 0.473 0.629
FACILITY_LOCATION_F=Mountain
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 342 31 0.926 0.0129 0.901 0.951
24 273 26 0.849 0.0186 0.813 0.886
36 213 21 0.780 0.0224 0.737 0.825
48 183 9 0.745 0.0242 0.699 0.794
60 155 9 0.707 0.0261 0.658 0.760
120 40 13 0.623 0.0327 0.562 0.691
FACILITY_LOCATION_F=Pacific
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 694 76 0.909 0.0100 0.889 0.928
24 564 57 0.829 0.0136 0.803 0.856
36 459 34 0.776 0.0155 0.747 0.807
48 371 31 0.721 0.0173 0.688 0.756
60 313 19 0.682 0.0185 0.647 0.719
120 86 40 0.545 0.0250 0.498 0.597
## Univariable Cox Proportional Hazard Model for: FACILITY_LOCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_LOCATION_F, data = data)
n= 8877, number of events= 2592
(1730 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic -0.177897 0.837028 0.086852 -2.048 0.0405 *
FACILITY_LOCATION_FSouth Atlantic -0.082995 0.920356 0.085207 -0.974 0.3300
FACILITY_LOCATION_FEast North Central -0.067565 0.934667 0.087301 -0.774 0.4390
FACILITY_LOCATION_FEast South Central -0.004220 0.995789 0.108707 -0.039 0.9690
FACILITY_LOCATION_FWest North Central 0.123145 1.131048 0.104691 1.176 0.2395
FACILITY_LOCATION_FWest South Central 0.004044 1.004052 0.112329 0.036 0.9713
FACILITY_LOCATION_FMountain -0.184509 0.831513 0.119913 -1.539 0.1239
FACILITY_LOCATION_FPacific -0.082724 0.920606 0.096784 -0.855 0.3927
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic 0.8370 1.1947 0.7060 0.9924
FACILITY_LOCATION_FSouth Atlantic 0.9204 1.0865 0.7788 1.0876
FACILITY_LOCATION_FEast North Central 0.9347 1.0699 0.7877 1.1091
FACILITY_LOCATION_FEast South Central 0.9958 1.0042 0.8047 1.2322
FACILITY_LOCATION_FWest North Central 1.1310 0.8841 0.9212 1.3887
FACILITY_LOCATION_FWest South Central 1.0041 0.9960 0.8056 1.2513
FACILITY_LOCATION_FMountain 0.8315 1.2026 0.6574 1.0518
FACILITY_LOCATION_FPacific 0.9206 1.0862 0.7615 1.1129
Concordance= 0.526 (se = 0.006 )
Rsquare= 0.002 (max possible= 0.993 )
Likelihood ratio test= 16.32 on 8 df, p=0.03808
Wald test = 16.59 on 8 df, p=0.03468
Score (logrank) test = 16.65 on 8 df, p=0.03401
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_LOCATION_F



Facility Geography
uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
1730 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast 2594 677 132 118 NA
FACILITY_GEOGRAPHY=South 2371 720 144 128 NA
FACILITY_GEOGRAPHY=Midwest 2597 821 132 120 NA
FACILITY_GEOGRAPHY=West 1315 374 NA 136 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
1730 observations deleted due to missingness
FACILITY_GEOGRAPHY=Northeast
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2079 198 0.919 0.00555 0.908 0.930
24 1722 140 0.853 0.00742 0.839 0.868
36 1368 100 0.800 0.00867 0.783 0.817
48 1045 72 0.753 0.00977 0.734 0.772
60 787 54 0.710 0.01085 0.689 0.731
120 124 104 0.534 0.01904 0.498 0.573
FACILITY_GEOGRAPHY=South
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1884 220 0.901 0.00632 0.889 0.914
24 1549 150 0.826 0.00828 0.810 0.842
36 1289 98 0.771 0.00942 0.752 0.789
48 1089 66 0.729 0.01023 0.709 0.749
60 892 54 0.690 0.01096 0.669 0.712
120 224 114 0.558 0.01493 0.530 0.588
FACILITY_GEOGRAPHY=Midwest
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2052 278 0.887 0.00640 0.874 0.900
24 1733 144 0.822 0.00789 0.807 0.838
36 1424 112 0.766 0.00895 0.749 0.784
48 1166 79 0.721 0.00976 0.702 0.740
60 947 55 0.684 0.01044 0.664 0.705
120 211 139 0.527 0.01512 0.498 0.557
FACILITY_GEOGRAPHY=West
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1036 107 0.914 0.00795 0.899 0.930
24 837 83 0.836 0.01097 0.815 0.858
36 672 55 0.778 0.01272 0.753 0.803
48 554 40 0.729 0.01408 0.702 0.757
60 468 28 0.690 0.01512 0.661 0.720
120 126 53 0.568 0.02027 0.530 0.609
## Univariable Cox Proportional Hazard Model for: FACILITY_GEOGRAPHY
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ FACILITY_GEOGRAPHY, data = data)
n= 8877, number of events= 2592
(1730 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
FACILITY_GEOGRAPHYSouth 0.06695 1.06924 0.05363 1.248 0.2119
FACILITY_GEOGRAPHYMidwest 0.11803 1.12528 0.05197 2.271 0.0231 *
FACILITY_GEOGRAPHYWest 0.01889 1.01907 0.06453 0.293 0.7697
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth 1.069 0.9352 0.9626 1.188
FACILITY_GEOGRAPHYMidwest 1.125 0.8887 1.0163 1.246
FACILITY_GEOGRAPHYWest 1.019 0.9813 0.8980 1.156
Concordance= 0.518 (se = 0.006 )
Rsquare= 0.001 (max possible= 0.993 )
Likelihood ratio test= 5.85 on 3 df, p=0.1191
Wald test = 5.86 on 3 df, p=0.1188
Score (logrank) test = 5.86 on 3 df, p=0.1186
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: FACILITY_GEOGRAPHY



Age Group
uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
5 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_F=(0,54] 4332 505 NA NA NA
AGE_F=(54,64] 2437 520 NA 158.3 NA
AGE_F=(64,74] 2098 670 110.9 103.5 127
AGE_F=(74,100] 1735 1024 44.8 40.4 51
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
5 observations deleted due to missingness
AGE_F=(0,54]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3630 153 0.962 0.00300 0.956 0.968
24 3138 118 0.929 0.00416 0.921 0.937
36 2676 65 0.909 0.00478 0.900 0.918
48 2242 50 0.891 0.00533 0.880 0.901
60 1852 39 0.874 0.00586 0.863 0.886
120 482 68 0.822 0.00858 0.805 0.839
AGE_F=(54,64]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1971 146 0.936 0.00513 0.926 0.946
24 1647 96 0.887 0.00686 0.874 0.901
36 1363 77 0.843 0.00815 0.828 0.860
48 1099 74 0.794 0.00952 0.775 0.812
60 896 33 0.768 0.01020 0.748 0.788
120 195 86 0.647 0.01554 0.617 0.678
AGE_F=(64,74]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1640 194 0.901 0.00678 0.888 0.914
24 1348 130 0.826 0.00886 0.808 0.843
36 1060 96 0.762 0.01027 0.743 0.783
48 850 63 0.714 0.01129 0.692 0.737
60 656 59 0.660 0.01245 0.636 0.685
120 132 113 0.473 0.01872 0.438 0.511
AGE_F=(74,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1255 354 0.788 0.0100 0.769 0.808
24 960 199 0.658 0.0119 0.636 0.682
36 712 145 0.553 0.0128 0.528 0.579
48 547 82 0.485 0.0133 0.459 0.511
60 408 69 0.419 0.0136 0.393 0.446
120 56 158 0.182 0.0154 0.154 0.215
## Univariable Cox Proportional Hazard Model for: AGE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_F, data = data)
n= 10602, number of events= 2719
(5 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_F(54,64] 0.70580 2.02547 0.06250 11.29 <2e-16 ***
AGE_F(64,74] 1.18603 3.27405 0.05901 20.10 <2e-16 ***
AGE_F(74,100] 1.97093 7.17735 0.05466 36.06 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64] 2.025 0.4937 1.792 2.289
AGE_F(64,74] 3.274 0.3054 2.916 3.675
AGE_F(74,100] 7.177 0.1393 6.448 7.989
Concordance= 0.687 (se = 0.006 )
Rsquare= 0.129 (max possible= 0.988 )
Likelihood ratio test= 1468 on 3 df, p=0
Wald test = 1443 on 3 df, p=0
Score (logrank) test = 1777 on 3 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_F



Age Group
uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
5 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
AGE_40=(0,40] 1844 142 NA NA NA
AGE_40=(40,100] 8758 2577 138 131 150
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
5 observations deleted due to missingness
AGE_40=(0,40]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1546 47 0.973 0.00396 0.965 0.980
24 1338 33 0.950 0.00543 0.940 0.961
36 1134 20 0.935 0.00633 0.923 0.948
48 951 12 0.924 0.00698 0.911 0.938
60 772 11 0.913 0.00775 0.898 0.928
120 194 16 0.882 0.01093 0.861 0.904
AGE_40=(40,100]
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6950 800 0.903 0.00326 0.897 0.910
24 5755 510 0.833 0.00423 0.825 0.842
36 4677 363 0.777 0.00486 0.768 0.787
48 3787 257 0.732 0.00535 0.721 0.742
60 3040 189 0.692 0.00578 0.681 0.704
120 671 409 0.543 0.00846 0.527 0.560
## Univariable Cox Proportional Hazard Model for: AGE_40
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ AGE_40, data = data)
n= 10602, number of events= 2719
(5 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
AGE_40(40,100] 1.45709 4.29343 0.08622 16.9 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100] 4.293 0.2329 3.626 5.084
Concordance= 0.566 (se = 0.004 )
Rsquare= 0.041 (max possible= 0.988 )
Likelihood ratio test= 448.9 on 1 df, p=0
Wald test = 285.6 on 1 df, p=0
Score (logrank) test = 339.8 on 1 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: AGE_40



Gender
uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n events median 0.95LCL 0.95UCL
SEX_F=Male 6026 1662 158 139 NA
SEX_F=Female 4581 1057 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
SEX_F=Male
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4803 522 0.908 0.00385 0.900 0.915
24 3971 348 0.839 0.00504 0.829 0.848
36 3262 227 0.788 0.00576 0.776 0.799
48 2657 151 0.749 0.00630 0.736 0.761
60 2143 118 0.713 0.00681 0.699 0.726
120 478 263 0.573 0.01004 0.554 0.593
SEX_F=Female
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3696 325 0.925 0.00402 0.917 0.933
24 3125 195 0.873 0.00522 0.863 0.884
36 2552 156 0.827 0.00613 0.815 0.839
48 2083 118 0.785 0.00691 0.772 0.799
60 1671 82 0.752 0.00755 0.737 0.767
120 387 162 0.631 0.01138 0.609 0.654
## Univariable Cox Proportional Hazard Model for: SEX_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SEX_F, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
SEX_FFemale -0.20798 0.81222 0.03934 -5.286 1.25e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale 0.8122 1.231 0.7519 0.8773
Concordance= 0.525 (se = 0.005 )
Rsquare= 0.003 (max possible= 0.988 )
Likelihood ratio test= 28.33 on 1 df, p=1.024e-07
Wald test = 27.94 on 1 df, p=1.25e-07
Score (logrank) test = 28.04 on 1 df, p=1.186e-07
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SEX_F



RACE_F
uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n events median 0.95LCL 0.95UCL
RACE_F=White 8006 2110 158 150 NA
RACE_F=Black 1877 488 NA 148 NA
RACE_F=Other/Unk 409 66 NA NA NA
RACE_F=Asian 315 55 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
RACE_F=White
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6438 640 0.915 0.00321 0.909 0.922
24 5377 430 0.851 0.00423 0.843 0.859
36 4416 301 0.800 0.00488 0.791 0.810
48 3632 196 0.762 0.00535 0.752 0.773
60 2935 160 0.726 0.00582 0.715 0.738
120 651 340 0.589 0.00870 0.572 0.606
RACE_F=Black
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1476 173 0.902 0.00711 0.888 0.916
24 1220 90 0.843 0.00893 0.826 0.861
36 1000 66 0.795 0.01023 0.775 0.815
48 798 53 0.749 0.01142 0.727 0.772
60 627 32 0.716 0.01233 0.692 0.740
120 156 65 0.601 0.01749 0.567 0.636
RACE_F=Other/Unk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 334 13 0.964 0.00974 0.945 0.984
24 284 14 0.922 0.01444 0.894 0.951
36 222 8 0.892 0.01737 0.859 0.927
48 164 15 0.825 0.02316 0.781 0.872
60 130 4 0.803 0.02506 0.756 0.854
120 30 12 0.695 0.03785 0.624 0.773
RACE_F=Asian
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 251 21 0.929 0.0150 0.900 0.959
24 215 9 0.894 0.0184 0.859 0.931
36 176 8 0.859 0.0215 0.818 0.902
48 146 5 0.832 0.0239 0.787 0.881
60 122 4 0.809 0.0260 0.759 0.861
120 28 8 0.716 0.0414 0.639 0.802
## Univariable Cox Proportional Hazard Model for: RACE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RACE_F, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
RACE_FBlack 0.01734 1.01749 0.05023 0.345 0.729902
RACE_FOther/Unk -0.46234 0.62981 0.12501 -3.698 0.000217 ***
RACE_FAsian -0.43079 0.65000 0.13659 -3.154 0.001611 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack 1.0175 0.9828 0.9221 1.1228
RACE_FOther/Unk 0.6298 1.5878 0.4929 0.8047
RACE_FAsian 0.6500 1.5385 0.4973 0.8495
Concordance= 0.515 (se = 0.004 )
Rsquare= 0.003 (max possible= 0.988 )
Likelihood ratio test= 27.24 on 3 df, p=5.246e-06
Wald test = 23.69 on 3 df, p=2.901e-05
Score (logrank) test = 24.09 on 3 df, p=2.387e-05
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RACE_F



Hispanic
uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n events median 0.95LCL 0.95UCL
HISPANIC=No 9463 2472 158 150 NA
HISPANIC=Yes 633 120 NA NA NA
HISPANIC=Unknown 511 127 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
HISPANIC=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7546 781 0.912 0.00300 0.906 0.918
24 6287 487 0.850 0.00390 0.843 0.858
36 5157 349 0.800 0.00450 0.791 0.809
48 4197 245 0.759 0.00498 0.749 0.769
60 3380 178 0.724 0.00539 0.714 0.735
120 769 382 0.592 0.00799 0.577 0.608
HISPANIC=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 513 41 0.931 0.0105 0.910 0.951
24 419 32 0.869 0.0143 0.842 0.898
36 330 14 0.837 0.0162 0.805 0.869
48 266 10 0.810 0.0179 0.775 0.845
60 193 10 0.773 0.0204 0.734 0.814
120 29 13 0.668 0.0355 0.602 0.741
HISPANIC=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 440 25 0.948 0.0101 0.929 0.968
24 390 24 0.895 0.0142 0.868 0.923
36 327 20 0.846 0.0171 0.813 0.881
48 277 14 0.808 0.0192 0.771 0.847
60 241 12 0.772 0.0210 0.732 0.814
120 67 30 0.633 0.0297 0.578 0.694
## Univariable Cox Proportional Hazard Model for: HISPANIC
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ HISPANIC, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
HISPANICYes -0.26404 0.76794 0.09350 -2.824 0.00474 **
HISPANICUnknown -0.20914 0.81128 0.09103 -2.297 0.02159 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes 0.7679 1.302 0.6394 0.9224
HISPANICUnknown 0.8113 1.233 0.6787 0.9697
Concordance= 0.511 (se = 0.003 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 13.55 on 2 df, p=0.001143
Wald test = 12.67 on 2 df, p=0.001771
Score (logrank) test = 12.74 on 2 df, p=0.001716
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: HISPANIC



Insurance Status
uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n events median 0.95LCL 0.95UCL
INSURANCE_F=Private 5618 800 NA NA NA
INSURANCE_F=None 365 82 NA NA NA
INSURANCE_F=Medicaid 622 155 NA NA NA
INSURANCE_F=Medicare 3580 1581 71.7 66.1 77.8
INSURANCE_F=Other Government 144 33 115.9 99.8 NA
INSURANCE_F=Unknown 278 68 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
INSURANCE_F=Private
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4691 200 0.962 0.00264 0.957 0.967
24 4011 178 0.923 0.00380 0.916 0.931
36 3393 114 0.896 0.00449 0.887 0.905
48 2822 97 0.868 0.00515 0.858 0.878
60 2314 64 0.847 0.00567 0.836 0.858
120 582 126 0.772 0.00855 0.755 0.789
INSURANCE_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 278 32 0.904 0.0162 0.873 0.936
24 234 16 0.849 0.0202 0.811 0.890
36 188 11 0.808 0.0228 0.764 0.853
48 159 10 0.762 0.0257 0.713 0.814
60 122 6 0.731 0.0276 0.679 0.787
120 23 7 0.668 0.0349 0.603 0.740
INSURANCE_F=Medicaid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 488 70 0.881 0.0134 0.855 0.907
24 388 38 0.807 0.0168 0.775 0.841
36 306 18 0.766 0.0186 0.730 0.803
48 238 11 0.736 0.0199 0.698 0.776
60 180 6 0.716 0.0209 0.677 0.759
120 28 12 0.634 0.0302 0.577 0.696
INSURANCE_F=Medicare
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2700 517 0.848 0.00617 0.836 0.860
24 2165 294 0.751 0.00763 0.736 0.766
36 1678 223 0.668 0.00857 0.652 0.685
48 1317 144 0.607 0.00920 0.589 0.625
60 1025 116 0.549 0.00976 0.530 0.569
120 184 258 0.337 0.01302 0.312 0.363
INSURANCE_F=Other Government
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 119 5 0.962 0.0165 0.931 0.995
24 101 5 0.921 0.0239 0.876 0.969
36 78 6 0.860 0.0331 0.797 0.927
48 60 3 0.822 0.0381 0.751 0.900
60 52 2 0.794 0.0416 0.717 0.880
120 9 11 0.439 0.0920 0.291 0.662
INSURANCE_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 223 23 0.912 0.0176 0.878 0.947
24 197 12 0.861 0.0218 0.820 0.905
36 171 11 0.812 0.0252 0.764 0.863
48 144 4 0.791 0.0266 0.741 0.845
60 121 6 0.756 0.0290 0.701 0.815
120 39 11 0.653 0.0398 0.580 0.736
## Univariable Cox Proportional Hazard Model for: INSURANCE_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ INSURANCE_F, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
INSURANCE_FNone 0.59109 1.80596 0.11597 5.097 3.45e-07 ***
INSURANCE_FMedicaid 0.74429 2.10496 0.08783 8.474 < 2e-16 ***
INSURANCE_FMedicare 1.34659 3.84428 0.04352 30.945 < 2e-16 ***
INSURANCE_FOther Government 0.59574 1.81438 0.17768 3.353 0.000799 ***
INSURANCE_FUnknown 0.50621 1.65900 0.12634 4.007 6.15e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone 1.806 0.5537 1.439 2.267
INSURANCE_FMedicaid 2.105 0.4751 1.772 2.500
INSURANCE_FMedicare 3.844 0.2601 3.530 4.187
INSURANCE_FOther Government 1.814 0.5512 1.281 2.570
INSURANCE_FUnknown 1.659 0.6028 1.295 2.125
Concordance= 0.656 (se = 0.005 )
Rsquare= 0.093 (max possible= 0.988 )
Likelihood ratio test= 1036 on 5 df, p=0
Wald test = 978.8 on 5 df, p=0
Score (logrank) test = 1117 on 5 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: INSURANCE_F



Overall Survival pre/post-ACA expansion
uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 144 20 NA 82.8 NA
EXPN_GROUP=Pre-Expansion 562 145 132 125.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
EXPN_GROUP=Post-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 119 5 0.963 0.0163 0.931 0.995
24 85 9 0.880 0.0303 0.823 0.942
36 42 4 0.827 0.0386 0.755 0.906
48 28 1 0.799 0.0467 0.712 0.896
60 18 0 0.799 0.0467 0.712 0.896
EXPN_GROUP=Pre-Expansion
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 498 20 0.963 0.00815 0.947 0.979
24 457 16 0.931 0.01111 0.909 0.953
36 394 20 0.888 0.01419 0.860 0.916
48 322 16 0.849 0.01652 0.818 0.882
60 253 25 0.778 0.02044 0.739 0.819
120 51 39 0.586 0.03289 0.525 0.655
## Univariable Cox Proportional Hazard Model for: EXPN_GROUP
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EXPN_GROUP, data = no_Excludes)
n= 706, number of events= 165
coef exp(coef) se(coef) z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2186 0.8036 0.2458 -0.889 0.374
exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion 0.8036 1.244 0.4964 1.301
Concordance= 0.519 (se = 0.016 )
Rsquare= 0.001 (max possible= 0.932 )
Likelihood ratio test= 0.75 on 1 df, p=0.3855
Wald test = 0.79 on 1 df, p=0.3739
Score (logrank) test = 0.79 on 1 df, p=0.373
## Unadjusted Kaplan Meier Overall Survival Curve for: EXPN_GROUP



Education
uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
55 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more 1651 477 142 128 NA
EDUCATION_F=13 - 20.9% 2543 731 150 131 NA
EDUCATION_F=7 - 12.9% 3399 895 158 145 NA
EDUCATION_F=Less than 7% 2959 607 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
55 observations deleted due to missingness
EDUCATION_F=21% or more
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1304 151 0.903 0.00753 0.888 0.918
24 1051 107 0.825 0.00997 0.806 0.845
36 865 61 0.774 0.01127 0.752 0.797
48 685 56 0.720 0.01262 0.695 0.745
60 554 30 0.685 0.01350 0.659 0.712
120 123 63 0.551 0.01977 0.514 0.591
EDUCATION_F=13 - 20.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2023 230 0.904 0.00602 0.892 0.916
24 1707 139 0.839 0.00772 0.824 0.854
36 1392 110 0.782 0.00893 0.764 0.799
48 1121 72 0.738 0.00979 0.719 0.758
60 901 49 0.704 0.01051 0.683 0.725
120 213 117 0.554 0.01580 0.524 0.586
EDUCATION_F=7 - 12.9%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2737 283 0.912 0.00501 0.902 0.922
24 2285 176 0.850 0.00649 0.837 0.863
36 1881 116 0.804 0.00741 0.790 0.819
48 1541 85 0.765 0.00817 0.749 0.781
60 1280 62 0.732 0.00883 0.715 0.750
120 288 151 0.595 0.01298 0.570 0.621
EDUCATION_F=Less than 7%
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2398 180 0.935 0.00469 0.926 0.944
24 2024 120 0.886 0.00624 0.874 0.898
36 1652 94 0.842 0.00741 0.827 0.856
48 1370 56 0.811 0.00820 0.795 0.827
60 1061 57 0.774 0.00919 0.756 0.792
120 236 93 0.671 0.01339 0.645 0.698
## Univariable Cox Proportional Hazard Model for: EDUCATION_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ EDUCATION_F, data = data)
n= 10552, number of events= 2710
(55 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
EDUCATION_F13 - 20.9% -0.04154 0.95931 0.05886 -0.706 0.48039
EDUCATION_F7 - 12.9% -0.15047 0.86030 0.05670 -2.654 0.00796 **
EDUCATION_FLess than 7% -0.38919 0.67760 0.06119 -6.360 2.01e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9% 0.9593 1.042 0.8548 1.0766
EDUCATION_F7 - 12.9% 0.8603 1.162 0.7698 0.9614
EDUCATION_FLess than 7% 0.6776 1.476 0.6010 0.7639
Concordance= 0.539 (se = 0.006 )
Rsquare= 0.005 (max possible= 0.988 )
Likelihood ratio test= 55.98 on 3 df, p=4.232e-12
Wald test = 54.04 on 3 df, p=1.098e-11
Score (logrank) test = 54.51 on 3 df, p=8.718e-12
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: EDUCATION_F



Urban/Rural
uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
302 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
U_R_F=Metro 9027 2236 NA 158.3 NA
U_R_F=Urban 1145 352 155 127.9 NA
U_R_F=Rural 133 45 118 98.2 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
302 observations deleted due to missingness
U_R_F=Metro
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 7258 693 0.918 0.00298 0.912 0.924
24 6068 435 0.860 0.00388 0.853 0.868
36 4960 317 0.812 0.00451 0.804 0.821
48 4035 232 0.771 0.00502 0.762 0.781
60 3226 169 0.736 0.00547 0.726 0.747
120 718 348 0.606 0.00828 0.590 0.622
U_R_F=Urban
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 906 110 0.899 0.00914 0.881 0.917
24 760 79 0.818 0.01204 0.795 0.842
36 636 48 0.764 0.01356 0.738 0.791
48 532 27 0.729 0.01449 0.701 0.758
60 445 25 0.693 0.01547 0.663 0.724
120 116 55 0.566 0.02067 0.527 0.608
U_R_F=Rural
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 104 17 0.867 0.0301 0.810 0.928
24 85 11 0.772 0.0380 0.701 0.850
36 75 6 0.717 0.0415 0.640 0.803
48 63 2 0.697 0.0427 0.618 0.786
60 53 1 0.685 0.0436 0.604 0.776
120 11 8 0.497 0.0709 0.375 0.657
## Univariable Cox Proportional Hazard Model for: U_R_F
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ U_R_F, data = data)
n= 10305, number of events= 2633
(302 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
U_R_FUrban 0.19141 1.21096 0.05736 3.337 0.000847 ***
U_R_FRural 0.30714 1.35953 0.15057 2.040 0.041364 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban 1.211 0.8258 1.082 1.355
U_R_FRural 1.360 0.7355 1.012 1.826
Concordance= 0.515 (se = 0.003 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 13.87 on 2 df, p=0.0009722
Wald test = 14.63 on 2 df, p=0.0006656
Score (logrank) test = 14.69 on 2 df, p=0.0006453
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: U_R_F



Year
uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 656 250 NA 141.7 NA
YEAR_OF_DIAGNOSIS=2005 746 289 150.1 139.0 NA
YEAR_OF_DIAGNOSIS=2006 727 236 NA NA NA
YEAR_OF_DIAGNOSIS=2007 768 254 NA NA NA
YEAR_OF_DIAGNOSIS=2008 804 247 NA 115.5 NA
YEAR_OF_DIAGNOSIS=2009 986 279 NA 104.8 NA
YEAR_OF_DIAGNOSIS=2010 937 246 NA 93.9 NA
YEAR_OF_DIAGNOSIS=2011 873 206 NA NA NA
YEAR_OF_DIAGNOSIS=2012 894 201 NA 69.6 NA
YEAR_OF_DIAGNOSIS=2013 1004 211 59.6 NA NA
YEAR_OF_DIAGNOSIS=2014 1064 162 NA 46.3 NA
YEAR_OF_DIAGNOSIS=2015 1148 138 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
YEAR_OF_DIAGNOSIS=2004
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 560 52 0.918 0.0109 0.897 0.940
24 508 29 0.869 0.0136 0.843 0.896
36 465 35 0.809 0.0160 0.778 0.841
48 432 29 0.758 0.0176 0.724 0.793
60 399 24 0.715 0.0186 0.680 0.753
120 237 61 0.588 0.0214 0.548 0.632
YEAR_OF_DIAGNOSIS=2005
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 615 70 0.902 0.0111 0.881 0.924
24 543 47 0.831 0.0143 0.804 0.860
36 508 33 0.781 0.0159 0.750 0.813
48 476 25 0.742 0.0169 0.710 0.776
60 443 23 0.706 0.0177 0.672 0.741
120 266 69 0.581 0.0200 0.543 0.622
YEAR_OF_DIAGNOSIS=2006
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 607 68 0.902 0.0113 0.881 0.925
24 541 38 0.844 0.0139 0.817 0.872
36 502 27 0.802 0.0155 0.772 0.833
48 478 18 0.773 0.0163 0.741 0.805
60 447 20 0.740 0.0172 0.707 0.774
120 256 57 0.633 0.0197 0.596 0.673
YEAR_OF_DIAGNOSIS=2007
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 645 80 0.893 0.0113 0.871 0.916
24 564 54 0.817 0.0143 0.789 0.845
36 528 20 0.787 0.0153 0.758 0.818
48 492 22 0.754 0.0162 0.723 0.786
60 447 18 0.726 0.0169 0.693 0.759
120 106 58 0.607 0.0206 0.568 0.648
YEAR_OF_DIAGNOSIS=2008
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 667 60 0.921 0.0098 0.902 0.940
24 594 47 0.854 0.0130 0.829 0.880
36 533 44 0.790 0.0152 0.761 0.821
48 488 18 0.763 0.0160 0.732 0.795
60 436 20 0.731 0.0169 0.698 0.765
YEAR_OF_DIAGNOSIS=2009
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 815 76 0.919 0.0089 0.902 0.937
24 749 49 0.863 0.0114 0.841 0.886
36 672 38 0.818 0.0129 0.793 0.844
48 611 36 0.773 0.0142 0.746 0.802
60 560 19 0.749 0.0148 0.720 0.778
YEAR_OF_DIAGNOSIS=2010
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 786 66 0.926 0.00879 0.909 0.943
24 697 47 0.869 0.01155 0.846 0.892
36 645 28 0.833 0.01287 0.808 0.859
48 578 40 0.780 0.01451 0.753 0.809
60 504 25 0.745 0.01548 0.715 0.776
YEAR_OF_DIAGNOSIS=2011
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 729 57 0.931 0.0088 0.914 0.949
24 641 45 0.872 0.0119 0.849 0.895
36 581 34 0.825 0.0137 0.798 0.852
48 516 29 0.782 0.0151 0.753 0.812
60 407 25 0.741 0.0164 0.709 0.774
YEAR_OF_DIAGNOSIS=2012
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 712 66 0.920 0.00943 0.902 0.939
24 619 46 0.858 0.01248 0.834 0.883
36 532 45 0.794 0.01479 0.765 0.823
48 436 20 0.762 0.01580 0.732 0.794
60 171 19 0.716 0.01826 0.681 0.753
YEAR_OF_DIAGNOSIS=2013
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 775 90 0.904 0.00963 0.886 0.923
24 652 48 0.845 0.01223 0.821 0.869
36 547 43 0.787 0.01425 0.759 0.815
48 233 23 0.746 0.01598 0.715 0.778
YEAR_OF_DIAGNOSIS=2014
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 798 81 0.917 0.00887 0.900 0.934
24 656 48 0.858 0.01168 0.836 0.881
36 301 24 0.821 0.01345 0.795 0.848
YEAR_OF_DIAGNOSIS=2015
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 790 81 0.920 0.00857 0.903 0.937
24 332 45 0.851 0.01293 0.826 0.877
## Univariable Cox Proportional Hazard Model for: YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ YEAR_OF_DIAGNOSIS, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005 0.065581 1.067779 0.086707 0.756 0.449
YEAR_OF_DIAGNOSIS2006 -0.101224 0.903730 0.091413 -1.107 0.268
YEAR_OF_DIAGNOSIS2007 -0.010069 0.989981 0.090137 -0.112 0.911
YEAR_OF_DIAGNOSIS2008 0.002238 1.002241 0.091039 0.025 0.980
YEAR_OF_DIAGNOSIS2009 -0.046739 0.954336 0.088718 -0.527 0.598
YEAR_OF_DIAGNOSIS2010 -0.053876 0.947549 0.091670 -0.588 0.557
YEAR_OF_DIAGNOSIS2011 -0.075474 0.927304 0.096134 -0.785 0.432
YEAR_OF_DIAGNOSIS2012 0.020951 1.021172 0.097068 0.216 0.829
YEAR_OF_DIAGNOSIS2013 0.095314 1.100004 0.096229 0.990 0.322
YEAR_OF_DIAGNOSIS2014 -0.055801 0.945728 0.103902 -0.537 0.591
YEAR_OF_DIAGNOSIS2015 -0.004014 0.995994 0.109715 -0.037 0.971
YEAR_OF_DIAGNOSIS2016 NA NA 0.000000 NA NA
exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005 1.0678 0.9365 0.9009 1.266
YEAR_OF_DIAGNOSIS2006 0.9037 1.1065 0.7555 1.081
YEAR_OF_DIAGNOSIS2007 0.9900 1.0101 0.8297 1.181
YEAR_OF_DIAGNOSIS2008 1.0022 0.9978 0.8385 1.198
YEAR_OF_DIAGNOSIS2009 0.9543 1.0478 0.8020 1.136
YEAR_OF_DIAGNOSIS2010 0.9475 1.0554 0.7917 1.134
YEAR_OF_DIAGNOSIS2011 0.9273 1.0784 0.7681 1.120
YEAR_OF_DIAGNOSIS2012 1.0212 0.9793 0.8443 1.235
YEAR_OF_DIAGNOSIS2013 1.1000 0.9091 0.9109 1.328
YEAR_OF_DIAGNOSIS2014 0.9457 1.0574 0.7715 1.159
YEAR_OF_DIAGNOSIS2015 0.9960 1.0040 0.8033 1.235
YEAR_OF_DIAGNOSIS2016 NA NA NA NA
Concordance= 0.514 (se = 0.006 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 8.15 on 11 df, p=0.6995
Wald test = 8.2 on 11 df, p=0.6949
Score (logrank) test = 8.21 on 11 df, p=0.694
Removed 2 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.



Primary Site
uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n events median 0.95LCL 0.95UCL
SITE_TEXT=C44.0 Skin of lip, NOS 38 8 NA NA NA
SITE_TEXT=C44.1 Eyelid 31 9 NA 96.79 NA
SITE_TEXT=C44.2 External ear 51 11 NA 89.46 NA
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face 721 114 NA NA NA
SITE_TEXT=C44.4 Skin of scalp and neck 416 71 NA NA NA
SITE_TEXT=C44.5 Skin of trunk 1762 352 NA NA NA
SITE_TEXT=C44.6 Skin of upper limb and shoulder 866 196 NA NA NA
SITE_TEXT=C44.7 Skin of lower limb and hip 1210 296 NA 150.05 NA
SITE_TEXT=C44.8 Overlapping lesion of skin 820 264 135.52 103.13 NA
SITE_TEXT=C44.9 Skin, NOS 4677 1393 132.34 124.12 NA
SITE_TEXT=C50.0 Nipple 1 1 6.05 NA NA
SITE_TEXT=C51.9 Vulva, NOS 6 2 NA 84.47 NA
SITE_TEXT=C52.9 Vagina, NOS 2 2 32.03 3.25 NA
SITE_TEXT=C60.0 Prepuce 2 0 NA NA NA
SITE_TEXT=C60.9 Penis 4 0 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
SITE_TEXT=C44.0 Skin of lip, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 1 0.974 0.0260 0.924 1.000
24 21 4 0.838 0.0669 0.717 0.980
36 17 2 0.752 0.0833 0.605 0.935
48 15 0 0.752 0.0833 0.605 0.935
60 9 1 0.694 0.0949 0.531 0.908
120 4 0 0.694 0.0949 0.531 0.908
SITE_TEXT=C44.1 Eyelid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 30 1 0.968 0.0317 0.908 1.000
24 23 3 0.864 0.0633 0.749 0.997
36 20 0 0.864 0.0633 0.749 0.997
48 19 0 0.864 0.0633 0.749 0.997
60 12 3 0.711 0.0964 0.545 0.928
120 4 2 0.533 0.1307 0.330 0.862
SITE_TEXT=C44.2 External ear
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 43 2 0.957 0.0296 0.901 1.000
24 38 0 0.957 0.0296 0.901 1.000
36 32 2 0.905 0.0457 0.819 0.999
48 23 4 0.787 0.0679 0.665 0.932
60 18 0 0.787 0.0679 0.665 0.932
120 4 3 0.517 0.1440 0.299 0.892
SITE_TEXT=C44.3 Skin of ear and unspecified parts of face
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 621 25 0.963 0.0072 0.949 0.978
24 527 21 0.929 0.0102 0.909 0.949
36 460 14 0.903 0.0120 0.880 0.927
48 369 15 0.871 0.0142 0.843 0.899
60 312 11 0.843 0.0160 0.812 0.875
120 73 24 0.739 0.0257 0.690 0.791
SITE_TEXT=C44.4 Skin of scalp and neck
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 346 21 0.947 0.0113 0.925 0.969
24 307 12 0.914 0.0144 0.886 0.942
36 258 10 0.882 0.0171 0.849 0.916
48 220 3 0.871 0.0181 0.836 0.907
60 194 6 0.846 0.0201 0.808 0.887
120 55 17 0.736 0.0318 0.676 0.801
SITE_TEXT=C44.5 Skin of trunk
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1421 113 0.931 0.00626 0.919 0.944
24 1217 55 0.893 0.00784 0.878 0.908
36 1029 48 0.856 0.00918 0.838 0.874
48 893 28 0.831 0.01003 0.812 0.851
60 729 36 0.795 0.01123 0.774 0.818
120 181 65 0.686 0.01663 0.654 0.719
SITE_TEXT=C44.6 Skin of upper limb and shoulder
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 706 58 0.928 0.00912 0.910 0.946
24 597 37 0.877 0.01189 0.854 0.900
36 498 26 0.836 0.01375 0.810 0.864
48 410 21 0.798 0.01544 0.768 0.829
60 344 12 0.773 0.01655 0.741 0.806
120 82 37 0.648 0.02454 0.602 0.698
SITE_TEXT=C44.7 Skin of lower limb and hip
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 988 82 0.928 0.00767 0.913 0.943
24 828 72 0.857 0.01070 0.837 0.879
36 703 38 0.816 0.01210 0.793 0.840
48 577 29 0.779 0.01334 0.754 0.806
60 466 20 0.750 0.01439 0.722 0.778
120 105 50 0.606 0.02326 0.562 0.653
SITE_TEXT=C44.8 Overlapping lesion of skin
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 650 80 0.896 0.0110 0.874 0.918
24 539 59 0.811 0.0145 0.783 0.840
36 446 36 0.753 0.0164 0.722 0.786
48 360 25 0.709 0.0177 0.675 0.744
60 280 21 0.664 0.0191 0.627 0.702
120 52 39 0.506 0.0280 0.454 0.564
SITE_TEXT=C44.9 Skin, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3652 462 0.895 0.00461 0.886 0.905
24 2990 279 0.823 0.00594 0.812 0.835
36 2342 207 0.762 0.00686 0.749 0.775
48 1845 144 0.711 0.00760 0.696 0.726
60 1443 90 0.673 0.00819 0.657 0.689
120 305 186 0.532 0.01204 0.509 0.556
SITE_TEXT=C50.0 Nipple
time n.risk n.event survival std.err lower 95% CI upper 95% CI
SITE_TEXT=C51.9 Vulva, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5 0 1.0 0.000 1.000 1
24 4 1 0.8 0.179 0.516 1
36 4 0 0.8 0.179 0.516 1
48 4 0 0.8 0.179 0.516 1
60 4 0 0.8 0.179 0.516 1
SITE_TEXT=C52.9 Vagina, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 1 0.5 0.354 0.125 1
24 1 0 0.5 0.354 0.125 1
36 1 0 0.5 0.354 0.125 1
48 1 0 0.5 0.354 0.125 1
60 1 0 0.5 0.354 0.125 1
SITE_TEXT=C60.0 Prepuce
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 2 0 1 0 1 1
48 2 0 1 0 1 1
60 1 0 1 0 1 1
SITE_TEXT=C60.9 Penis
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 2 0 1 0 1 1
36 2 0 1 0 1 1
48 2 0 1 0 1 1
60 1 0 1 0 1 1
## Univariable Cox Proportional Hazard Model for: SITE_TEXT
Loglik converged before variable 43,44,45,46,47,48,49,50,51,52,53,58,59,60,64 ; beta may be infinite. X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 54 55 56 57 61 62 63 65 66 67 68 69 70 71 72 73
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SITE_TEXT, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
SITE_TEXTC00.1 External Lip: Lower NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA 0.000e+00 NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA 0.000e+00 NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC00.9 Lip NOS NA NA 0.000e+00 NA NA
SITE_TEXTC01.9 Tongue: Base NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.1 Tongue: Border, Tip NA NA 0.000e+00 NA NA
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA 0.000e+00 NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA 0.000e+00 NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC02.9 Tongue: NOS NA NA 0.000e+00 NA NA
SITE_TEXTC03.0 Gum: Upper NA NA 0.000e+00 NA NA
SITE_TEXTC03.1 Gum: Lower NA NA 0.000e+00 NA NA
SITE_TEXTC03.9 Gum NOS NA NA 0.000e+00 NA NA
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA 0.000e+00 NA NA
SITE_TEXTC04.9 Floor of Mouth NOS NA NA 0.000e+00 NA NA
SITE_TEXTC05.0 Hard Palate NA NA 0.000e+00 NA NA
SITE_TEXTC05.1 Soft Palate NOS NA NA 0.000e+00 NA NA
SITE_TEXTC05.2 Uvula NA NA 0.000e+00 NA NA
SITE_TEXTC05.8 Palate: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC05.9 Palate NOS NA NA 0.000e+00 NA NA
SITE_TEXTC06.0 Cheek Mucosa NA NA 0.000e+00 NA NA
SITE_TEXTC06.1 Mouth: Vestibule NA NA 0.000e+00 NA NA
SITE_TEXTC06.2 Retromolar Area NA NA 0.000e+00 NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC06.9 Mouth NOS NA NA 0.000e+00 NA NA
SITE_TEXTC07.9 Parotid Gland NA NA 0.000e+00 NA NA
SITE_TEXTC09.8 Tonsil: Overlapping NA NA 0.000e+00 NA NA
SITE_TEXTC09.9 Tonsil NOS NA NA 0.000e+00 NA NA
SITE_TEXTC11.1 Nasopharynx: Poster Wall NA NA 0.000e+00 NA NA
SITE_TEXTC14.2 Waldeyer Ring NA NA 0.000e+00 NA NA
SITE_TEXTC30.0 Nasal Cavity NA NA 0.000e+00 NA NA
SITE_TEXTC37.9 Thymus NA NA 0.000e+00 NA NA
SITE_TEXTC42.0 Blood NA NA 0.000e+00 NA NA
SITE_TEXTC42.2 Spleen NA NA 0.000e+00 NA NA
SITE_TEXTC42.4 Hematopoietic NOS NA NA 0.000e+00 NA NA
SITE_TEXTC44.0 Skin of lip, NOS 1.078e+01 4.811e+04 1.804e+05 0 1
SITE_TEXTC44.1 Eyelid 1.085e+01 5.134e+04 1.804e+05 0 1
SITE_TEXTC44.2 External ear 1.066e+01 4.275e+04 1.804e+05 0 1
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 1.030e+01 2.983e+04 1.804e+05 0 1
SITE_TEXTC44.4 Skin of scalp and neck 1.035e+01 3.122e+04 1.804e+05 0 1
SITE_TEXTC44.5 Skin of trunk 1.058e+01 3.940e+04 1.804e+05 0 1
SITE_TEXTC44.6 Skin of upper limb and shoulder 1.072e+01 4.534e+04 1.804e+05 0 1
SITE_TEXTC44.7 Skin of lower limb and hip 1.081e+01 4.959e+04 1.804e+05 0 1
SITE_TEXTC44.8 Overlapping lesion of skin 1.115e+01 6.970e+04 1.804e+05 0 1
SITE_TEXTC44.9 Skin, NOS 1.111e+01 6.708e+04 1.804e+05 0 1
SITE_TEXTC50.0 Nipple 1.400e+01 1.204e+06 1.804e+05 0 1
SITE_TEXTC51.0 Labium majus NA NA 0.000e+00 NA NA
SITE_TEXTC51.1 Labium minus NA NA 0.000e+00 NA NA
SITE_TEXTC51.2 Clitoris NA NA 0.000e+00 NA NA
SITE_TEXTC51.8 Overlapping lesion of vulva NA NA 0.000e+00 NA NA
SITE_TEXTC51.9 Vulva, NOS 1.097e+01 5.831e+04 1.804e+05 0 1
SITE_TEXTC52.9 Vagina, NOS 1.266e+01 3.150e+05 1.804e+05 0 1
SITE_TEXTC60.0 Prepuce -1.380e+00 2.517e-01 1.804e+05 0 1
SITE_TEXTC60.1 Glans penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.2 Body of penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.8 Overlapping lesion of penis NA NA 0.000e+00 NA NA
SITE_TEXTC60.9 Penis -1.384e+00 2.506e-01 1.804e+05 0 1
SITE_TEXTC63.2 Scrotum, NOS NA NA 0.000e+00 NA NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck NA NA 0.000e+00 NA NA
SITE_TEXTC77.1 Intrathoracic Lymph Nodes NA NA 0.000e+00 NA NA
SITE_TEXTC77.2 Intra-abdominal LymphNodes NA NA 0.000e+00 NA NA
SITE_TEXTC77.3 Lymph Nodes of axilla or arm NA NA 0.000e+00 NA NA
SITE_TEXTC77.4 Lymph Nodes: Leg NA NA 0.000e+00 NA NA
SITE_TEXTC77.5 Pelvic Lymph Nodes NA NA 0.000e+00 NA NA
SITE_TEXTC77.8 Lymph Nodes: multiple region NA NA 0.000e+00 NA NA
SITE_TEXTC77.9 Lymph Node NOS NA NA 0.000e+00 NA NA
exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC00.1 External Lip: Lower NOS NA NA NA NA
SITE_TEXTC00.2 External Lip: NOS NA NA NA NA
SITE_TEXTC00.3 Lip: Upper Mucosa NA NA NA NA
SITE_TEXTC00.4 Lip: Lower Mucosa NA NA NA NA
SITE_TEXTC00.5 Lip: Mucosa NOS NA NA NA NA
SITE_TEXTC00.6 Lip: Commissure NA NA NA NA
SITE_TEXTC00.8 Lip: Overlapping NA NA NA NA
SITE_TEXTC00.9 Lip NOS NA NA NA NA
SITE_TEXTC01.9 Tongue: Base NOS NA NA NA NA
SITE_TEXTC02.0 Tongue: Dorsal NOS NA NA NA NA
SITE_TEXTC02.1 Tongue: Border, Tip NA NA NA NA
SITE_TEXTC02.2 Tongue: Ventral NOS NA NA NA NA
SITE_TEXTC02.3 Tongue: Anterior NOS NA NA NA NA
SITE_TEXTC02.4 Lingual Tonsil NA NA NA NA
SITE_TEXTC02.8 Tongue: Overlapping NA NA NA NA
SITE_TEXTC02.9 Tongue: NOS NA NA NA NA
SITE_TEXTC03.0 Gum: Upper NA NA NA NA
SITE_TEXTC03.1 Gum: Lower NA NA NA NA
SITE_TEXTC03.9 Gum NOS NA NA NA NA
SITE_TEXTC04.0 Mouth: Anterior Floor NA NA NA NA
SITE_TEXTC04.1 Mouth: Lateral Floor NA NA NA NA
SITE_TEXTC04.9 Floor of Mouth NOS NA NA NA NA
SITE_TEXTC05.0 Hard Palate NA NA NA NA
SITE_TEXTC05.1 Soft Palate NOS NA NA NA NA
SITE_TEXTC05.2 Uvula NA NA NA NA
SITE_TEXTC05.8 Palate: Overlapping NA NA NA NA
SITE_TEXTC05.9 Palate NOS NA NA NA NA
SITE_TEXTC06.0 Cheek Mucosa NA NA NA NA
SITE_TEXTC06.1 Mouth: Vestibule NA NA NA NA
SITE_TEXTC06.2 Retromolar Area NA NA NA NA
SITE_TEXTC06.8 Mouth: Other Overlapping NA NA NA NA
SITE_TEXTC06.9 Mouth NOS NA NA NA NA
SITE_TEXTC07.9 Parotid Gland NA NA NA NA
SITE_TEXTC09.8 Tonsil: Overlapping NA NA NA NA
SITE_TEXTC09.9 Tonsil NOS NA NA NA NA
SITE_TEXTC11.1 Nasopharynx: Poster Wall NA NA NA NA
SITE_TEXTC14.2 Waldeyer Ring NA NA NA NA
SITE_TEXTC30.0 Nasal Cavity NA NA NA NA
SITE_TEXTC37.9 Thymus NA NA NA NA
SITE_TEXTC42.0 Blood NA NA NA NA
SITE_TEXTC42.2 Spleen NA NA NA NA
SITE_TEXTC42.4 Hematopoietic NOS NA NA NA NA
SITE_TEXTC44.0 Skin of lip, NOS 4.811e+04 2.078e-05 0 Inf
SITE_TEXTC44.1 Eyelid 5.134e+04 1.948e-05 0 Inf
SITE_TEXTC44.2 External ear 4.275e+04 2.339e-05 0 Inf
SITE_TEXTC44.3 Skin of ear and unspecified parts of face 2.983e+04 3.352e-05 0 Inf
SITE_TEXTC44.4 Skin of scalp and neck 3.122e+04 3.203e-05 0 Inf
SITE_TEXTC44.5 Skin of trunk 3.940e+04 2.538e-05 0 Inf
SITE_TEXTC44.6 Skin of upper limb and shoulder 4.534e+04 2.206e-05 0 Inf
SITE_TEXTC44.7 Skin of lower limb and hip 4.959e+04 2.017e-05 0 Inf
SITE_TEXTC44.8 Overlapping lesion of skin 6.970e+04 1.435e-05 0 Inf
SITE_TEXTC44.9 Skin, NOS 6.708e+04 1.491e-05 0 Inf
SITE_TEXTC50.0 Nipple 1.204e+06 8.308e-07 0 Inf
SITE_TEXTC51.0 Labium majus NA NA NA NA
SITE_TEXTC51.1 Labium minus NA NA NA NA
SITE_TEXTC51.2 Clitoris NA NA NA NA
SITE_TEXTC51.8 Overlapping lesion of vulva NA NA NA NA
SITE_TEXTC51.9 Vulva, NOS 5.831e+04 1.715e-05 0 Inf
SITE_TEXTC52.9 Vagina, NOS 3.150e+05 3.175e-06 0 Inf
SITE_TEXTC60.0 Prepuce 2.517e-01 3.973e+00 0 Inf
SITE_TEXTC60.1 Glans penis NA NA NA NA
SITE_TEXTC60.2 Body of penis NA NA NA NA
SITE_TEXTC60.8 Overlapping lesion of penis NA NA NA NA
SITE_TEXTC60.9 Penis 2.506e-01 3.990e+00 0 Inf
SITE_TEXTC63.2 Scrotum, NOS NA NA NA NA
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck NA NA NA NA
SITE_TEXTC77.1 Intrathoracic Lymph Nodes NA NA NA NA
SITE_TEXTC77.2 Intra-abdominal LymphNodes NA NA NA NA
SITE_TEXTC77.3 Lymph Nodes of axilla or arm NA NA NA NA
SITE_TEXTC77.4 Lymph Nodes: Leg NA NA NA NA
SITE_TEXTC77.5 Pelvic Lymph Nodes NA NA NA NA
SITE_TEXTC77.8 Lymph Nodes: multiple region NA NA NA NA
SITE_TEXTC77.9 Lymph Node NOS NA NA NA NA
Concordance= 0.574 (se = 0.006 )
Rsquare= 0.02 (max possible= 0.988 )
Likelihood ratio test= 210.7 on 15 df, p=0
Wald test = 16.36 on 15 df, p=0.3588
Score (logrank) test = 220 on 15 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 59 rows containing missing values (geom_errorbar).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 74 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 15.



Histology
#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)
Grade
#uni_var(test_var = "GRADE_F", data_imp = data)
Clinical T Stage
uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
260 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 4716 1363 NA NA NA
TNM_CLIN_T=c1 1675 130 NA NA NA
TNM_CLIN_T=c1A 248 15 NA NA NA
TNM_CLIN_T=c1B 118 12 NA NA NA
TNM_CLIN_T=c2 810 163 NA 109.7 NA
TNM_CLIN_T=c2A 82 7 NA NA NA
TNM_CLIN_T=c2B 112 19 NA NA NA
TNM_CLIN_T=c3 399 160 59.4 50.8 95.0
TNM_CLIN_T=c4 438 216 43.9 37.4 55.5
TNM_CLIN_T=cX 1749 585 155.1 145.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
260 observations deleted due to missingness
TNM_CLIN_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3700 529 0.882 0.00483 0.873 0.891
24 3089 267 0.815 0.00595 0.804 0.827
36 2588 151 0.773 0.00656 0.760 0.786
48 2185 103 0.740 0.00703 0.727 0.754
60 1828 84 0.710 0.00748 0.695 0.725
120 452 207 0.587 0.01039 0.567 0.608
TNM_CLIN_T=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1364 22 0.985 0.00309 0.979 0.991
24 1163 21 0.969 0.00460 0.960 0.979
36 921 23 0.949 0.00621 0.937 0.961
48 682 25 0.919 0.00835 0.903 0.936
60 475 13 0.899 0.00990 0.880 0.919
120 35 26 0.783 0.03065 0.725 0.846
TNM_CLIN_T=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 209 3 0.987 0.00724 0.973 1.000
24 164 3 0.972 0.01143 0.950 0.995
36 122 6 0.930 0.02003 0.892 0.970
48 88 2 0.911 0.02378 0.865 0.959
60 49 1 0.893 0.02926 0.837 0.952
TNM_CLIN_T=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 94 0 1.000 0.0000 1.000 1.000
24 69 8 0.907 0.0315 0.847 0.971
36 46 1 0.890 0.0351 0.824 0.961
48 36 0 0.890 0.0351 0.824 0.961
60 22 2 0.827 0.0547 0.726 0.941
TNM_CLIN_T=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 651 33 0.956 0.00758 0.941 0.970
24 541 30 0.908 0.01109 0.887 0.930
36 421 31 0.852 0.01429 0.825 0.881
48 297 26 0.793 0.01739 0.760 0.828
60 210 19 0.734 0.02071 0.695 0.776
120 13 24 0.513 0.05358 0.418 0.629
TNM_CLIN_T=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 65 1 0.988 0.0124 0.963 1.000
24 54 2 0.953 0.0266 0.903 1.000
36 29 3 0.886 0.0456 0.801 0.980
48 18 0 0.886 0.0456 0.801 0.980
60 12 1 0.818 0.0778 0.678 0.985
TNM_CLIN_T=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 86 2 0.980 0.0143 0.952 1.000
24 62 5 0.918 0.0300 0.861 0.978
36 39 7 0.798 0.0499 0.705 0.902
48 26 4 0.701 0.0632 0.587 0.836
60 18 0 0.701 0.0632 0.587 0.836
TNM_CLIN_T=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 318 43 0.886 0.0163 0.855 0.919
24 230 50 0.738 0.0235 0.694 0.786
36 160 28 0.641 0.0267 0.590 0.695
48 112 19 0.558 0.0293 0.503 0.618
60 67 11 0.490 0.0321 0.431 0.558
120 3 9 0.359 0.0479 0.276 0.466
TNM_CLIN_T=c4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 312 76 0.816 0.0192 0.779 0.854
24 238 45 0.691 0.0236 0.647 0.739
36 165 42 0.562 0.0263 0.513 0.616
48 112 21 0.484 0.0277 0.433 0.542
60 71 14 0.415 0.0294 0.361 0.477
120 4 18 0.241 0.0434 0.169 0.343
TNM_CLIN_T=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1498 116 0.931 0.00620 0.919 0.943
24 1333 99 0.868 0.00843 0.851 0.884
36 1216 86 0.811 0.00985 0.792 0.831
48 1117 64 0.768 0.01071 0.747 0.789
60 1016 52 0.731 0.01133 0.709 0.754
120 358 138 0.602 0.01399 0.576 0.631
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 21 22
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_T, data = data)
n= 10347, number of events= 2670
(260 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Tc0 NA NA 0.00000 NA NA
TNM_CLIN_Tc1 -1.20355 0.30013 0.09197 -13.087 < 2e-16 ***
TNM_CLIN_Tc1A -1.35666 0.25752 0.25976 -5.223 1.76e-07 ***
TNM_CLIN_Tc1B -0.76895 0.46350 0.29007 -2.651 0.00803 **
TNM_CLIN_Tc1C NA NA 0.00000 NA NA
TNM_CLIN_Tc1MI NA NA 0.00000 NA NA
TNM_CLIN_Tc2 -0.21446 0.80698 0.08309 -2.581 0.00985 **
TNM_CLIN_Tc2A -0.91328 0.40120 0.37905 -2.409 0.01598 *
TNM_CLIN_Tc2B -0.19693 0.82125 0.23119 -0.852 0.39431
TNM_CLIN_Tc2C NA NA 0.00000 NA NA
TNM_CLIN_Tc2D NA NA 0.00000 NA NA
TNM_CLIN_Tc3 0.59451 1.81215 0.08392 7.084 1.40e-12 ***
TNM_CLIN_Tc3A NA NA 0.00000 NA NA
TNM_CLIN_Tc3B NA NA 0.00000 NA NA
TNM_CLIN_Tc4 0.87863 2.40759 0.07366 11.929 < 2e-16 ***
TNM_CLIN_Tc4A NA NA 0.00000 NA NA
TNM_CLIN_Tc4B NA NA 0.00000 NA NA
TNM_CLIN_Tc4C NA NA 0.00000 NA NA
TNM_CLIN_Tc4D NA NA 0.00000 NA NA
TNM_CLIN_TcX -0.12109 0.88595 0.04969 -2.437 0.01482 *
TNM_CLIN_TpA NA NA 0.00000 NA NA
TNM_CLIN_TpIS NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0 NA NA NA NA
TNM_CLIN_Tc1 0.3001 3.3319 0.2506 0.3594
TNM_CLIN_Tc1A 0.2575 3.8832 0.1548 0.4285
TNM_CLIN_Tc1B 0.4635 2.1575 0.2625 0.8184
TNM_CLIN_Tc1C NA NA NA NA
TNM_CLIN_Tc1MI NA NA NA NA
TNM_CLIN_Tc2 0.8070 1.2392 0.6857 0.9497
TNM_CLIN_Tc2A 0.4012 2.4925 0.1909 0.8434
TNM_CLIN_Tc2B 0.8212 1.2177 0.5220 1.2920
TNM_CLIN_Tc2C NA NA NA NA
TNM_CLIN_Tc2D NA NA NA NA
TNM_CLIN_Tc3 1.8121 0.5518 1.5373 2.1361
TNM_CLIN_Tc3A NA NA NA NA
TNM_CLIN_Tc3B NA NA NA NA
TNM_CLIN_Tc4 2.4076 0.4154 2.0839 2.7815
TNM_CLIN_Tc4A NA NA NA NA
TNM_CLIN_Tc4B NA NA NA NA
TNM_CLIN_Tc4C NA NA NA NA
TNM_CLIN_Tc4D NA NA NA NA
TNM_CLIN_TcX 0.8860 1.1287 0.8037 0.9766
TNM_CLIN_TpA NA NA NA NA
TNM_CLIN_TpIS NA NA NA NA
Concordance= 0.618 (se = 0.006 )
Rsquare= 0.049 (max possible= 0.988 )
Likelihood ratio test= 518.1 on 9 df, p=0
Wald test = 467.2 on 9 df, p=0
Score (logrank) test = 535.2 on 9 df, p=0
Removed 14 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_T



Clinical N Stage
uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
244 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 4715 1363 NA NA NA
TNM_CLIN_N=c0 3400 500 NA NA NA
TNM_CLIN_N=c1 194 95 48.5 40.44 65.4
TNM_CLIN_N=c1A 10 4 NA 28.32 NA
TNM_CLIN_N=c1B 9 4 43.4 30.49 NA
TNM_CLIN_N=c2 33 19 36.7 33.12 NA
TNM_CLIN_N=c2A 1 0 NA NA NA
TNM_CLIN_N=c2B 6 4 30.3 7.52 NA
TNM_CLIN_N=c3 62 29 37.9 23.75 NA
TNM_CLIN_N=cX 1933 654 155.1 140.71 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
244 observations deleted due to missingness
TNM_CLIN_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3700 529 0.882 0.00483 0.872 0.891
24 3089 267 0.815 0.00595 0.804 0.827
36 2588 151 0.773 0.00656 0.760 0.786
48 2185 103 0.740 0.00703 0.727 0.754
60 1828 84 0.710 0.00748 0.695 0.725
120 452 207 0.587 0.01039 0.567 0.608
TNM_CLIN_N=c0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2766 98 0.968 0.00315 0.962 0.975
24 2275 115 0.925 0.00495 0.916 0.935
36 1730 103 0.879 0.00646 0.867 0.892
48 1270 69 0.840 0.00773 0.825 0.855
60 866 49 0.801 0.00916 0.783 0.819
120 53 66 0.647 0.02491 0.600 0.697
TNM_CLIN_N=c1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 138 34 0.815 0.0288 0.760 0.873
24 105 20 0.692 0.0352 0.626 0.765
36 79 15 0.591 0.0386 0.519 0.671
48 50 8 0.519 0.0415 0.443 0.607
60 30 9 0.414 0.0457 0.333 0.514
120 2 9 0.222 0.0560 0.136 0.364
TNM_CLIN_N=c1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 1 0.889 0.105 0.706 1.000
24 7 1 0.778 0.139 0.549 1.000
36 4 2 0.556 0.166 0.310 0.997
48 2 0 0.556 0.166 0.310 0.997
60 1 0 0.556 0.166 0.310 0.997
TNM_CLIN_N=c1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5 2 0.762 0.148 0.521 1
24 4 0 0.762 0.148 0.521 1
36 2 1 0.571 0.199 0.289 1
48 1 1 0.286 0.225 0.061 1
60 1 0 0.286 0.225 0.061 1
TNM_CLIN_N=c2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 5 0.842 0.0651 0.723 0.979
24 18 4 0.695 0.0855 0.546 0.885
36 12 3 0.563 0.0980 0.400 0.792
48 6 4 0.375 0.1006 0.222 0.635
60 3 1 0.300 0.1048 0.151 0.595
TNM_CLIN_N=c2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_CLIN_N=c2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4 2 0.667 0.192 0.379 1
24 3 1 0.500 0.204 0.225 1
36 1 0 0.500 0.204 0.225 1
48 1 0 0.500 0.204 0.225 1
TNM_CLIN_N=c3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 42 14 0.763 0.0556 0.661 0.880
24 25 7 0.612 0.0681 0.493 0.762
36 19 2 0.560 0.0716 0.436 0.720
48 11 6 0.365 0.0797 0.238 0.560
60 8 0 0.365 0.0797 0.238 0.560
120 1 0 0.365 0.0797 0.238 0.560
TNM_CLIN_N=cX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1622 142 0.923 0.00622 0.911 0.935
24 1423 116 0.855 0.00838 0.839 0.871
36 1277 99 0.794 0.00975 0.775 0.814
48 1147 74 0.747 0.01060 0.727 0.768
60 1030 53 0.712 0.01116 0.690 0.734
120 357 140 0.585 0.01369 0.559 0.613
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_N
Loglik converged before variable 6 ; beta may be infinite. X matrix deemed to be singular; variable 8 10 11 12 13
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_N, data = data)
n= 10363, number of events= 2672
(244 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_Nc0 -5.286e-01 5.894e-01 5.263e-02 -10.043 < 2e-16 ***
TNM_CLIN_Nc1 8.477e-01 2.334e+00 1.064e-01 7.970 1.55e-15 ***
TNM_CLIN_Nc1A 5.498e-01 1.733e+00 5.008e-01 1.098 0.27234
TNM_CLIN_Nc1B 1.028e+00 2.795e+00 5.009e-01 2.052 0.04017 *
TNM_CLIN_Nc2 1.116e+00 3.052e+00 2.312e-01 4.826 1.39e-06 ***
TNM_CLIN_Nc2A -9.269e+00 9.428e-05 4.032e+02 -0.023 0.98166
TNM_CLIN_Nc2B 1.474e+00 4.369e+00 5.009e-01 2.943 0.00325 **
TNM_CLIN_Nc2C NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3 9.474e-01 2.579e+00 1.878e-01 5.044 4.57e-07 ***
TNM_CLIN_Nc3A NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3B NA NA 0.000e+00 NA NA
TNM_CLIN_Nc3C NA NA 0.000e+00 NA NA
TNM_CLIN_Nc4 NA NA 0.000e+00 NA NA
TNM_CLIN_NcX -5.465e-02 9.468e-01 4.776e-02 -1.144 0.25258
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0 5.894e-01 1.697e+00 0.5317 0.6535
TNM_CLIN_Nc1 2.334e+00 4.284e-01 1.8951 2.8755
TNM_CLIN_Nc1A 1.733e+00 5.771e-01 0.6493 4.6245
TNM_CLIN_Nc1B 2.795e+00 3.578e-01 1.0472 7.4589
TNM_CLIN_Nc2 3.052e+00 3.276e-01 1.9400 4.8024
TNM_CLIN_Nc2A 9.428e-05 1.061e+04 0.0000 Inf
TNM_CLIN_Nc2B 4.369e+00 2.289e-01 1.6366 11.6612
TNM_CLIN_Nc2C NA NA NA NA
TNM_CLIN_Nc3 2.579e+00 3.878e-01 1.7847 3.7268
TNM_CLIN_Nc3A NA NA NA NA
TNM_CLIN_Nc3B NA NA NA NA
TNM_CLIN_Nc3C NA NA NA NA
TNM_CLIN_Nc4 NA NA NA NA
TNM_CLIN_NcX 9.468e-01 1.056e+00 0.8622 1.0397
Concordance= 0.584 (se = 0.006 )
Rsquare= 0.023 (max possible= 0.988 )
Likelihood ratio test= 237.6 on 9 df, p=0
Wald test = 264 on 9 df, p=0
Score (logrank) test = 287.9 on 9 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 15 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_N



Clinical Stage Group
uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
7 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1 1472 307 NA 158.3 NA
TNM_CLIN_STAGE_GROUP=1A 3752 441 NA NA NA
TNM_CLIN_STAGE_GROUP=1B 1345 256 NA 138.3 NA
TNM_CLIN_STAGE_GROUP=2 141 57 111.4 67.4 NA
TNM_CLIN_STAGE_GROUP=2A 232 76 135.5 79.6 NA
TNM_CLIN_STAGE_GROUP=2B 510 214 65.5 53.9 96.7
TNM_CLIN_STAGE_GROUP=3 139 78 48.0 36.5 74.1
TNM_CLIN_STAGE_GROUP=3A 285 127 61.4 42.7 75.7
TNM_CLIN_STAGE_GROUP=3B 132 73 33.2 22.7 55.5
TNM_CLIN_STAGE_GROUP=4 357 222 32.5 24.8 43.0
TNM_CLIN_STAGE_GROUP=4A 355 209 37.4 28.2 49.5
TNM_CLIN_STAGE_GROUP=4A1 75 33 45.4 32.4 76.3
TNM_CLIN_STAGE_GROUP=4A2 31 13 40.0 23.8 NA
TNM_CLIN_STAGE_GROUP=4B 176 123 15.9 10.1 23.7
TNM_CLIN_STAGE_GROUP=N_A 23 5 NA NA NA
TNM_CLIN_STAGE_GROUP=99 1575 484 155.1 132.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
7 observations deleted due to missingness
TNM_CLIN_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1241 80 0.943 0.00620 0.931 0.955
24 1100 48 0.905 0.00801 0.889 0.921
36 964 41 0.870 0.00942 0.851 0.888
48 846 29 0.842 0.01041 0.822 0.863
60 710 34 0.806 0.01166 0.784 0.829
120 193 68 0.692 0.01682 0.660 0.726
TNM_CLIN_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3160 71 0.980 0.00241 0.975 0.984
24 2689 85 0.952 0.00380 0.944 0.959
36 2206 67 0.926 0.00480 0.917 0.936
48 1760 54 0.901 0.00576 0.890 0.913
60 1389 43 0.877 0.00666 0.864 0.890
120 277 107 0.761 0.01301 0.736 0.787
TNM_CLIN_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1101 49 0.960 0.00554 0.950 0.971
24 937 45 0.919 0.00809 0.903 0.935
36 740 45 0.871 0.01037 0.851 0.891
48 571 39 0.820 0.01255 0.796 0.845
60 454 24 0.782 0.01415 0.755 0.810
120 82 47 0.632 0.02464 0.585 0.682
TNM_CLIN_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 114 16 0.883 0.0276 0.830 0.938
24 91 13 0.778 0.0365 0.710 0.853
36 74 9 0.697 0.0416 0.620 0.784
48 66 3 0.668 0.0432 0.588 0.758
60 60 3 0.636 0.0448 0.554 0.730
120 12 11 0.463 0.0594 0.360 0.595
TNM_CLIN_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 185 25 0.887 0.0212 0.847 0.930
24 156 14 0.817 0.0266 0.767 0.871
36 120 13 0.743 0.0312 0.684 0.806
48 88 10 0.674 0.0352 0.608 0.746
60 69 7 0.617 0.0382 0.546 0.696
120 13 6 0.548 0.0435 0.469 0.640
TNM_CLIN_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 412 57 0.883 0.0146 0.855 0.912
24 308 62 0.742 0.0205 0.703 0.784
36 221 38 0.644 0.0232 0.600 0.691
48 162 26 0.562 0.0252 0.515 0.614
60 116 10 0.522 0.0265 0.472 0.576
120 10 21 0.332 0.0437 0.257 0.430
TNM_CLIN_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 106 24 0.819 0.0335 0.756 0.887
24 84 15 0.699 0.0405 0.624 0.783
36 68 13 0.589 0.0441 0.509 0.682
48 55 9 0.509 0.0455 0.427 0.606
60 39 7 0.438 0.0464 0.356 0.539
120 6 9 0.254 0.0610 0.159 0.407
TNM_CLIN_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 206 36 0.860 0.0217 0.818 0.903
24 163 30 0.730 0.0286 0.676 0.788
36 119 30 0.589 0.0328 0.528 0.656
48 99 8 0.547 0.0336 0.485 0.617
60 69 7 0.504 0.0347 0.440 0.577
120 11 15 0.368 0.0404 0.297 0.456
TNM_CLIN_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 90 33 0.740 0.0390 0.668 0.821
24 65 20 0.570 0.0450 0.488 0.665
36 49 8 0.496 0.0461 0.414 0.595
48 39 5 0.445 0.0467 0.362 0.547
60 25 4 0.393 0.0480 0.310 0.500
120 4 3 0.335 0.0515 0.248 0.453
TNM_CLIN_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 220 116 0.665 0.0255 0.617 0.716
24 175 30 0.570 0.0271 0.520 0.626
36 135 27 0.480 0.0278 0.428 0.537
48 109 19 0.410 0.0280 0.359 0.469
60 98 5 0.391 0.0280 0.340 0.450
120 24 23 0.259 0.0307 0.205 0.326
TNM_CLIN_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 241 91 0.737 0.0237 0.692 0.785
24 170 49 0.581 0.0273 0.530 0.637
36 131 22 0.501 0.0283 0.449 0.560
48 101 12 0.453 0.0289 0.400 0.513
60 83 10 0.406 0.0294 0.352 0.468
120 18 22 0.249 0.0337 0.191 0.324
TNM_CLIN_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 56 8 0.888 0.0373 0.818 0.964
24 43 7 0.771 0.0525 0.675 0.881
36 26 9 0.590 0.0665 0.474 0.736
48 11 4 0.453 0.0805 0.320 0.642
60 7 3 0.320 0.0862 0.189 0.543
TNM_CLIN_STAGE_GROUP=4A2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 6 0.806 0.0710 0.679 0.958
24 12 4 0.628 0.0977 0.463 0.852
36 8 1 0.571 0.1042 0.400 0.817
48 4 2 0.381 0.1301 0.195 0.744
60 3 0 0.381 0.1301 0.195 0.744
TNM_CLIN_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 86 77 0.544 0.0385 0.473 0.625
24 59 20 0.409 0.0390 0.340 0.494
36 44 10 0.337 0.0383 0.270 0.421
48 30 7 0.281 0.0374 0.217 0.365
60 21 4 0.239 0.0372 0.177 0.325
120 5 4 0.181 0.0381 0.120 0.274
TNM_CLIN_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 19 3 0.870 0.0702 0.742 1.000
24 16 1 0.821 0.0813 0.676 0.997
36 11 1 0.758 0.0965 0.591 0.973
48 8 0 0.758 0.0965 0.591 0.973
60 5 0 0.758 0.0965 0.591 0.973
TNM_CLIN_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1233 155 0.894 0.00804 0.879 0.910
24 1022 100 0.818 0.01037 0.798 0.839
36 893 48 0.778 0.01136 0.756 0.801
48 786 42 0.740 0.01223 0.716 0.764
60 662 39 0.701 0.01310 0.675 0.727
120 210 87 0.565 0.01743 0.532 0.601
## Univariable Cox Proportional Hazard Model for: TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 18 20
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_CLIN_STAGE_GROUP, data = data)
n= 10600, number of events= 2718
(7 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_CLIN_STAGE_GROUP1 -0.48211 0.61748 0.07297 -6.607 3.92e-11 ***
TNM_CLIN_STAGE_GROUP1A -0.91698 0.39972 0.06595 -13.904 < 2e-16 ***
TNM_CLIN_STAGE_GROUP1B -0.38228 0.68231 0.07742 -4.937 7.92e-07 ***
TNM_CLIN_STAGE_GROUP1C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP2 0.32838 1.38872 0.14006 2.345 0.019045 *
TNM_CLIN_STAGE_GROUP2A 0.20114 1.22279 0.12347 1.629 0.103316
TNM_CLIN_STAGE_GROUP2B 0.57384 1.77507 0.08246 6.959 3.42e-12 ***
TNM_CLIN_STAGE_GROUP2C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP3 0.81880 2.26777 0.12216 6.703 2.05e-11 ***
TNM_CLIN_STAGE_GROUP3A 0.65160 1.91860 0.09990 6.523 6.91e-11 ***
TNM_CLIN_STAGE_GROUP3B 0.96605 2.62754 0.12579 7.680 1.59e-14 ***
TNM_CLIN_STAGE_GROUP3C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUP4 1.03381 2.81175 0.08115 12.740 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A 1.02225 2.77944 0.08301 12.314 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4A1 0.84372 2.32500 0.18040 4.677 2.91e-06 ***
TNM_CLIN_STAGE_GROUP4A2 0.95522 2.59925 0.28140 3.395 0.000687 ***
TNM_CLIN_STAGE_GROUP4B 1.51180 4.53487 0.10134 14.919 < 2e-16 ***
TNM_CLIN_STAGE_GROUP4C NA NA 0.00000 NA NA
TNM_CLIN_STAGE_GROUPN_A -0.04061 0.96021 0.44967 -0.090 0.928045
TNM_CLIN_STAGE_GROUP99 NA NA 0.00000 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1 0.6175 1.6195 0.5352 0.7124
TNM_CLIN_STAGE_GROUP1A 0.3997 2.5017 0.3513 0.4549
TNM_CLIN_STAGE_GROUP1B 0.6823 1.4656 0.5862 0.7941
TNM_CLIN_STAGE_GROUP1C NA NA NA NA
TNM_CLIN_STAGE_GROUP2 1.3887 0.7201 1.0554 1.8274
TNM_CLIN_STAGE_GROUP2A 1.2228 0.8178 0.9600 1.5576
TNM_CLIN_STAGE_GROUP2B 1.7751 0.5634 1.5102 2.0864
TNM_CLIN_STAGE_GROUP2C NA NA NA NA
TNM_CLIN_STAGE_GROUP3 2.2678 0.4410 1.7849 2.8813
TNM_CLIN_STAGE_GROUP3A 1.9186 0.5212 1.5774 2.3336
TNM_CLIN_STAGE_GROUP3B 2.6275 0.3806 2.0534 3.3622
TNM_CLIN_STAGE_GROUP3C NA NA NA NA
TNM_CLIN_STAGE_GROUP4 2.8117 0.3557 2.3983 3.2965
TNM_CLIN_STAGE_GROUP4A 2.7794 0.3598 2.3621 3.2705
TNM_CLIN_STAGE_GROUP4A1 2.3250 0.4301 1.6326 3.3111
TNM_CLIN_STAGE_GROUP4A2 2.5992 0.3847 1.4973 4.5120
TNM_CLIN_STAGE_GROUP4B 4.5349 0.2205 3.7180 5.5312
TNM_CLIN_STAGE_GROUP4C NA NA NA NA
TNM_CLIN_STAGE_GROUPN_A 0.9602 1.0414 0.3977 2.3180
TNM_CLIN_STAGE_GROUP99 NA NA NA NA
Concordance= 0.709 (se = 0.006 )
Rsquare= 0.119 (max possible= 0.988 )
Likelihood ratio test= 1347 on 15 df, p=0
Wald test = 1436 on 15 df, p=0
Score (logrank) test = 1776 on 15 df, p=0
Removed 6 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 16.



Pathologic T Stage
uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
2056 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 4655 1351 NA NA NA
TNM_PATH_T=p1 786 65 NA NA NA
TNM_PATH_T=p1A 89 6 NA NA NA
TNM_PATH_T=p1B 41 4 NA NA NA
TNM_PATH_T=p2 351 68 NA 90.8 NA
TNM_PATH_T=p2A 19 2 NA NA NA
TNM_PATH_T=p2B 33 8 41.1 34.4 NA
TNM_PATH_T=p3 165 59 66.0 53.9 NA
TNM_PATH_T=p4 196 92 46.2 36.7 65.4
TNM_PATH_T=pX 2216 717 158.3 147.5 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
2056 observations deleted due to missingness
TNM_PATH_T=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3658 522 0.882 0.00486 0.873 0.892
24 3063 264 0.815 0.00598 0.804 0.827
36 2570 151 0.773 0.00659 0.760 0.786
48 2174 102 0.740 0.00707 0.727 0.754
60 1823 83 0.710 0.00751 0.696 0.725
120 452 207 0.587 0.01041 0.567 0.608
TNM_PATH_T=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 629 15 0.979 0.00544 0.968 0.989
24 539 13 0.957 0.00790 0.942 0.973
36 422 9 0.940 0.00966 0.921 0.959
48 294 13 0.907 0.01302 0.882 0.933
60 187 8 0.877 0.01628 0.846 0.910
120 6 7 0.833 0.02367 0.788 0.881
TNM_PATH_T=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 77 1 0.988 0.0121 0.964 1.000
24 67 1 0.973 0.0186 0.938 1.000
36 54 3 0.924 0.0330 0.861 0.991
48 42 1 0.902 0.0386 0.830 0.981
60 23 0 0.902 0.0386 0.830 0.981
TNM_PATH_T=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 32 0 1.000 0.0000 1.000 1
24 26 2 0.935 0.0441 0.853 1
36 23 0 0.935 0.0441 0.853 1
48 15 0 0.935 0.0441 0.853 1
60 8 2 0.772 0.1135 0.579 1
TNM_PATH_T=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 286 14 0.957 0.0113 0.935 0.979
24 248 12 0.914 0.0162 0.883 0.946
36 198 14 0.859 0.0209 0.818 0.901
48 128 11 0.801 0.0258 0.752 0.853
60 82 8 0.740 0.0317 0.680 0.805
TNM_PATH_T=p2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 13 0 1.000 0.000 1.000 1
24 11 0 1.000 0.000 1.000 1
36 6 2 0.778 0.139 0.549 1
48 4 0 0.778 0.139 0.549 1
60 3 0 0.778 0.139 0.549 1
TNM_PATH_T=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 1 0.963 0.0363 0.894 1.000
24 12 2 0.854 0.0802 0.710 1.000
36 8 3 0.626 0.1274 0.420 0.933
48 6 2 0.470 0.1353 0.267 0.826
60 5 0 0.470 0.1353 0.267 0.826
TNM_PATH_T=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 134 14 0.909 0.0231 0.865 0.956
24 97 18 0.781 0.0343 0.717 0.852
36 76 8 0.713 0.0390 0.640 0.793
48 51 9 0.616 0.0451 0.534 0.711
60 29 6 0.524 0.0519 0.432 0.637
120 2 4 0.383 0.0790 0.256 0.574
TNM_PATH_T=p4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 140 34 0.814 0.0288 0.760 0.873
24 111 19 0.700 0.0348 0.635 0.771
36 79 17 0.585 0.0387 0.514 0.666
48 49 12 0.488 0.0412 0.414 0.576
60 27 5 0.428 0.0442 0.350 0.524
TNM_PATH_T=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1891 144 0.932 0.00547 0.921 0.943
24 1694 121 0.871 0.00742 0.856 0.885
36 1526 109 0.814 0.00872 0.797 0.831
48 1400 79 0.771 0.00950 0.753 0.790
60 1277 61 0.737 0.01004 0.717 0.757
120 405 173 0.603 0.01274 0.579 0.629
## Univariable Cox Proportional Hazard Model for: TNM_PATH_T
X matrix deemed to be singular; variable 1 5 6 10 11 13 14 16 17 18 19 20 21
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_T, data = data)
n= 8551, number of events= 2372
(2056 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Tp0 NA NA 0.00000 NA NA
TNM_PATH_Tp1 -1.09138 0.33575 0.12718 -8.581 < 2e-16 ***
TNM_PATH_Tp1A -1.35229 0.25865 0.40924 -3.304 0.000952 ***
TNM_PATH_Tp1B -0.90127 0.40605 0.50080 -1.800 0.071916 .
TNM_PATH_Tp1C NA NA 0.00000 NA NA
TNM_PATH_Tp1MI NA NA 0.00000 NA NA
TNM_PATH_Tp2 -0.25293 0.77652 0.12452 -2.031 0.042230 *
TNM_PATH_Tp2A -0.61423 0.54106 0.70770 -0.868 0.385435
TNM_PATH_Tp2B 0.31861 1.37521 0.35475 0.898 0.369120
TNM_PATH_Tp2C NA NA 0.00000 NA NA
TNM_PATH_Tp2D NA NA 0.00000 NA NA
TNM_PATH_Tp3 0.43640 1.54713 0.13321 3.276 0.001053 **
TNM_PATH_Tp3A NA NA 0.00000 NA NA
TNM_PATH_Tp3B NA NA 0.00000 NA NA
TNM_PATH_Tp4 0.83398 2.30247 0.10815 7.712 1.24e-14 ***
TNM_PATH_Tp4A NA NA 0.00000 NA NA
TNM_PATH_Tp4B NA NA 0.00000 NA NA
TNM_PATH_Tp4C NA NA 0.00000 NA NA
TNM_PATH_Tp4D NA NA 0.00000 NA NA
TNM_PATH_TpA NA NA 0.00000 NA NA
TNM_PATH_TpIS NA NA 0.00000 NA NA
TNM_PATH_TpX -0.12927 0.87874 0.04643 -2.784 0.005365 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0 NA NA NA NA
TNM_PATH_Tp1 0.3358 2.9784 0.2617 0.4308
TNM_PATH_Tp1A 0.2586 3.8663 0.1160 0.5768
TNM_PATH_Tp1B 0.4061 2.4627 0.1522 1.0836
TNM_PATH_Tp1C NA NA NA NA
TNM_PATH_Tp1MI NA NA NA NA
TNM_PATH_Tp2 0.7765 1.2878 0.6084 0.9912
TNM_PATH_Tp2A 0.5411 1.8482 0.1352 2.1659
TNM_PATH_Tp2B 1.3752 0.7272 0.6861 2.7563
TNM_PATH_Tp2C NA NA NA NA
TNM_PATH_Tp2D NA NA NA NA
TNM_PATH_Tp3 1.5471 0.6464 1.1916 2.0087
TNM_PATH_Tp3A NA NA NA NA
TNM_PATH_Tp3B NA NA NA NA
TNM_PATH_Tp4 2.3025 0.4343 1.8627 2.8461
TNM_PATH_Tp4A NA NA NA NA
TNM_PATH_Tp4B NA NA NA NA
TNM_PATH_Tp4C NA NA NA NA
TNM_PATH_Tp4D NA NA NA NA
TNM_PATH_TpA NA NA NA NA
TNM_PATH_TpIS NA NA NA NA
TNM_PATH_TpX 0.8787 1.1380 0.8023 0.9625
Concordance= 0.571 (se = 0.006 )
Rsquare= 0.023 (max possible= 0.991 )
Likelihood ratio test= 200.4 on 9 df, p=0
Wald test = 181.1 on 9 df, p=0
Score (logrank) test = 199.2 on 9 df, p=0
Removed 14 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_T



Pathologic N Stage
uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
1971 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 4654 1351 NA NA NA
TNM_PATH_N=p0 762 106 NA NA NA
TNM_PATH_N=p1 45 24 48.7 27.5 NA
TNM_PATH_N=p1A 4 1 NA 9.2 NA
TNM_PATH_N=p1B 4 1 43.4 NA NA
TNM_PATH_N=p2 17 8 55.0 36.7 NA
TNM_PATH_N=p2B 1 0 NA NA NA
TNM_PATH_N=p3 18 12 21.7 10.3 NA
TNM_PATH_N=pX 3131 883 158.3 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
1971 observations deleted due to missingness
TNM_PATH_N=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3657 522 0.882 0.00486 0.872 0.892
24 3062 264 0.815 0.00598 0.804 0.827
36 2570 151 0.773 0.00660 0.760 0.786
48 2174 102 0.740 0.00707 0.726 0.754
60 1823 83 0.710 0.00751 0.696 0.725
120 452 207 0.587 0.01041 0.567 0.608
TNM_PATH_N=p0
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 608 19 0.972 0.00626 0.960 0.985
24 523 21 0.937 0.00965 0.918 0.956
36 404 21 0.895 0.01294 0.870 0.920
48 299 13 0.861 0.01546 0.831 0.892
60 209 14 0.815 0.01898 0.778 0.853
120 8 18 0.691 0.03461 0.626 0.762
TNM_PATH_N=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 28 11 0.738 0.0682 0.616 0.885
24 24 2 0.683 0.0734 0.553 0.843
36 19 3 0.598 0.0790 0.461 0.775
48 13 1 0.565 0.0813 0.426 0.749
60 7 5 0.342 0.0923 0.202 0.580
TNM_PATH_N=p1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 1 0.75 0.217 0.426 1
24 3 0 0.75 0.217 0.426 1
36 2 0 0.75 0.217 0.426 1
48 2 0 0.75 0.217 0.426 1
60 1 0 0.75 0.217 0.426 1
TNM_PATH_N=p1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
TNM_PATH_N=p2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 3 0.812 0.0976 0.642 1.000
24 12 0 0.812 0.0976 0.642 1.000
36 8 1 0.731 0.1168 0.535 1.000
48 4 2 0.533 0.1477 0.310 0.918
60 1 1 0.355 0.1754 0.135 0.935
TNM_PATH_N=p2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
TNM_PATH_N=p3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 12 6 0.667 0.111 0.4809 0.924
24 7 4 0.432 0.119 0.2516 0.742
36 5 1 0.370 0.117 0.1993 0.688
48 2 1 0.247 0.128 0.0897 0.679
60 2 0 0.247 0.128 0.0897 0.679
TNM_PATH_N=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2630 183 0.938 0.00443 0.930 0.947
24 2290 167 0.876 0.00621 0.864 0.888
36 2004 140 0.821 0.00737 0.807 0.836
48 1705 112 0.773 0.00822 0.757 0.789
60 1447 71 0.739 0.00880 0.722 0.756
120 405 180 0.605 0.01206 0.582 0.629
## Univariable Cox Proportional Hazard Model for: TNM_PATH_N
Loglik converged before variable 13 ; beta may be infinite. X matrix deemed to be singular; variable 2 3 4 5 9 10 12 14 16 17 18 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_N, data = data)
n= 8636, number of events= 2386
(1971 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Np0 -5.912e-01 5.536e-01 1.011e-01 -5.850 4.91e-09 ***
TNM_PATH_Np0I- NA NA 0.000e+00 NA NA
TNM_PATH_Np0I+ NA NA 0.000e+00 NA NA
TNM_PATH_Np0M- NA NA 0.000e+00 NA NA
TNM_PATH_Np0M+ NA NA 0.000e+00 NA NA
TNM_PATH_Np1 9.905e-01 2.693e+00 2.061e-01 4.806 1.54e-06 ***
TNM_PATH_Np1A -5.270e-02 9.487e-01 1.000e+00 -0.053 0.957985
TNM_PATH_Np1B 5.883e-01 1.801e+00 1.001e+00 0.588 0.556559
TNM_PATH_Np1C NA NA 0.000e+00 NA NA
TNM_PATH_Np1MI NA NA 0.000e+00 NA NA
TNM_PATH_Np2 7.988e-01 2.223e+00 3.547e-01 2.252 0.024336 *
TNM_PATH_Np2A NA NA 0.000e+00 NA NA
TNM_PATH_Np2B -1.060e+01 2.504e-05 4.607e+02 -0.023 0.981650
TNM_PATH_Np2C NA NA 0.000e+00 NA NA
TNM_PATH_Np3 1.350e+00 3.856e+00 2.901e-01 4.651 3.30e-06 ***
TNM_PATH_Np3A NA NA 0.000e+00 NA NA
TNM_PATH_Np3B NA NA 0.000e+00 NA NA
TNM_PATH_Np3C NA NA 0.000e+00 NA NA
TNM_PATH_Np4 NA NA 0.000e+00 NA NA
TNM_PATH_NpX -1.549e-01 8.565e-01 4.332e-02 -3.577 0.000347 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0 5.536e-01 1.806e+00 0.4541 0.6749
TNM_PATH_Np0I- NA NA NA NA
TNM_PATH_Np0I+ NA NA NA NA
TNM_PATH_Np0M- NA NA NA NA
TNM_PATH_Np0M+ NA NA NA NA
TNM_PATH_Np1 2.693e+00 3.714e-01 1.7978 4.0328
TNM_PATH_Np1A 9.487e-01 1.054e+00 0.1335 6.7399
TNM_PATH_Np1B 1.801e+00 5.553e-01 0.2534 12.7970
TNM_PATH_Np1C NA NA NA NA
TNM_PATH_Np1MI NA NA NA NA
TNM_PATH_Np2 2.223e+00 4.499e-01 1.1091 4.4551
TNM_PATH_Np2A NA NA NA NA
TNM_PATH_Np2B 2.504e-05 3.994e+04 0.0000 Inf
TNM_PATH_Np2C NA NA NA NA
TNM_PATH_Np3 3.856e+00 2.594e-01 2.1833 6.8088
TNM_PATH_Np3A NA NA NA NA
TNM_PATH_Np3B NA NA NA NA
TNM_PATH_Np3C NA NA NA NA
TNM_PATH_Np4 NA NA NA NA
TNM_PATH_NpX 8.565e-01 1.168e+00 0.7868 0.9324
Concordance= 0.553 (se = 0.006 )
Rsquare= 0.01 (max possible= 0.991 )
Likelihood ratio test= 87.87 on 8 df, p=1.221e-15
Wald test = 99.26 on 8 df, p=0
Score (logrank) test = 108.6 on 8 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 13 rows containing missing values (geom_errorbar).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 21 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_N



Pathologic M Stage
uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3778 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 4467 1303 NA NA NA
TNM_PATH_M=p1 32 17 37.5 25.1 NA
TNM_PATH_M=pX 2330 748 158.3 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
3778 observations deleted due to missingness
TNM_PATH_M=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3520 497 0.883 0.00494 0.873 0.893
24 2965 249 0.818 0.00607 0.806 0.830
36 2498 149 0.774 0.00671 0.761 0.788
48 2123 100 0.741 0.00719 0.727 0.756
60 1786 82 0.711 0.00764 0.696 0.726
120 452 204 0.588 0.01050 0.568 0.609
TNM_PATH_M=p1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 21 8 0.739 0.0795 0.598 0.912
24 16 1 0.695 0.0859 0.546 0.886
36 10 4 0.508 0.1021 0.343 0.753
48 6 1 0.457 0.1038 0.293 0.713
60 4 2 0.305 0.1119 0.148 0.626
TNM_PATH_M=pX
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1992 148 0.934 0.00528 0.923 0.944
24 1790 124 0.874 0.00716 0.860 0.888
36 1617 112 0.818 0.00841 0.802 0.835
48 1487 80 0.777 0.00916 0.759 0.795
60 1353 70 0.740 0.00975 0.721 0.759
120 413 184 0.604 0.01247 0.580 0.629
## Univariable Cox Proportional Hazard Model for: TNM_PATH_M
X matrix deemed to be singular; variable 1 3 4 5
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_M, data = data)
n= 6829, number of events= 2068
(3778 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_Mp0 NA NA 0.00000 NA NA
TNM_PATH_Mp1 1.03649 2.81932 0.24431 4.242 2.21e-05 ***
TNM_PATH_Mp1A NA NA 0.00000 NA NA
TNM_PATH_Mp1B NA NA 0.00000 NA NA
TNM_PATH_Mp1C NA NA 0.00000 NA NA
TNM_PATH_MpX -0.12761 0.88019 0.04607 -2.770 0.00561 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp0 NA NA NA NA
TNM_PATH_Mp1 2.8193 0.3547 1.7466 4.5510
TNM_PATH_Mp1A NA NA NA NA
TNM_PATH_Mp1B NA NA NA NA
TNM_PATH_Mp1C NA NA NA NA
TNM_PATH_MpX 0.8802 1.1361 0.8042 0.9634
Concordance= 0.528 (se = 0.006 )
Rsquare= 0.003 (max possible= 0.993 )
Likelihood ratio test= 21.99 on 2 df, p=1.679e-05
Wald test = 27.3 on 2 df, p=1.179e-06
Score (logrank) test = 29.34 on 2 df, p=4.263e-07
Removed 5 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_M



Pathologic Stage Group
uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
1249 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1 574 120 NA NA NA
TNM_PATH_STAGE_GROUP=1A 1086 142 NA NA NA
TNM_PATH_STAGE_GROUP=1B 321 62 NA 118.3 NA
TNM_PATH_STAGE_GROUP=2 61 26 132.9 64.1 NA
TNM_PATH_STAGE_GROUP=2A 69 20 135.5 77.3 NA
TNM_PATH_STAGE_GROUP=2B 141 53 102.1 53.9 NA
TNM_PATH_STAGE_GROUP=3 54 31 48.2 34.9 NA
TNM_PATH_STAGE_GROUP=3A 80 38 63.9 31.6 NA
TNM_PATH_STAGE_GROUP=3B 49 25 55.5 30.2 NA
TNM_PATH_STAGE_GROUP=4 152 95 32.2 24.0 45.3
TNM_PATH_STAGE_GROUP=4A 112 73 23.5 14.6 54.4
TNM_PATH_STAGE_GROUP=4A1 1 0 NA NA NA
TNM_PATH_STAGE_GROUP=4B 84 54 30.5 17.7 41.1
TNM_PATH_STAGE_GROUP=N_A 21 5 NA NA NA
TNM_PATH_STAGE_GROUP=99 6553 1724 NA 155.1 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
1249 observations deleted due to missingness
TNM_PATH_STAGE_GROUP=1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 473 32 0.941 0.0101 0.921 0.961
24 429 18 0.904 0.0130 0.879 0.930
36 384 16 0.869 0.0151 0.840 0.899
48 338 14 0.836 0.0169 0.804 0.870
60 300 9 0.813 0.0181 0.778 0.849
120 77 28 0.696 0.0266 0.646 0.750
TNM_PATH_STAGE_GROUP=1A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 910 25 0.975 0.00494 0.965 0.985
24 805 24 0.948 0.00725 0.934 0.962
36 670 21 0.921 0.00911 0.904 0.939
48 537 17 0.895 0.01081 0.874 0.917
60 422 19 0.861 0.01292 0.836 0.887
120 99 34 0.745 0.02323 0.701 0.792
TNM_PATH_STAGE_GROUP=1B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 261 14 0.953 0.0123 0.929 0.977
24 230 10 0.914 0.0168 0.882 0.948
36 195 8 0.880 0.0202 0.841 0.920
48 153 8 0.840 0.0237 0.794 0.887
60 126 7 0.798 0.0272 0.747 0.853
120 18 15 0.597 0.0560 0.497 0.718
TNM_PATH_STAGE_GROUP=2
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 50 6 0.897 0.0399 0.822 0.979
24 43 3 0.841 0.0489 0.750 0.942
36 33 7 0.699 0.0637 0.584 0.835
48 30 1 0.677 0.0653 0.560 0.818
60 27 2 0.630 0.0687 0.509 0.780
120 9 4 0.502 0.0822 0.364 0.692
TNM_PATH_STAGE_GROUP=2A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 55 4 0.937 0.0305 0.879 0.999
24 48 4 0.867 0.0438 0.786 0.958
36 36 5 0.772 0.0562 0.669 0.890
48 28 1 0.747 0.0596 0.639 0.873
60 21 2 0.690 0.0675 0.569 0.835
120 4 3 0.542 0.0948 0.384 0.764
TNM_PATH_STAGE_GROUP=2B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 112 17 0.873 0.0289 0.818 0.931
24 88 12 0.774 0.0371 0.705 0.850
36 71 9 0.691 0.0422 0.614 0.779
48 52 6 0.625 0.0461 0.541 0.722
60 35 5 0.553 0.0508 0.462 0.662
120 4 4 0.406 0.0772 0.280 0.590
TNM_PATH_STAGE_GROUP=3
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 42 11 0.795 0.0552 0.6935 0.911
24 37 3 0.737 0.0604 0.6276 0.865
36 29 6 0.614 0.0681 0.4942 0.763
48 23 3 0.546 0.0710 0.4231 0.704
60 18 4 0.451 0.0728 0.3286 0.619
120 2 4 0.229 0.1075 0.0913 0.575
TNM_PATH_STAGE_GROUP=3A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 54 15 0.792 0.0481 0.703 0.892
24 42 7 0.682 0.0565 0.580 0.803
36 30 8 0.546 0.0626 0.436 0.684
48 26 1 0.527 0.0633 0.416 0.666
60 19 1 0.506 0.0642 0.394 0.648
120 4 5 0.338 0.0765 0.217 0.526
TNM_PATH_STAGE_GROUP=3B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 35 11 0.764 0.0623 0.651 0.896
24 30 4 0.677 0.0688 0.554 0.826
36 23 4 0.581 0.0738 0.453 0.746
48 18 3 0.503 0.0766 0.373 0.678
60 11 3 0.395 0.0816 0.264 0.592
120 1 0 0.395 0.0816 0.264 0.592
TNM_PATH_STAGE_GROUP=4
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 93 54 0.639 0.0393 0.566 0.721
24 79 9 0.575 0.0408 0.501 0.661
36 59 16 0.457 0.0418 0.382 0.546
48 47 7 0.401 0.0416 0.327 0.492
60 45 1 0.393 0.0416 0.319 0.483
120 12 7 0.309 0.0447 0.233 0.411
TNM_PATH_STAGE_GROUP=4A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 66 39 0.644 0.0459 0.560 0.740
24 50 15 0.497 0.0487 0.410 0.602
36 42 4 0.455 0.0488 0.369 0.562
48 34 4 0.410 0.0489 0.325 0.518
60 28 3 0.372 0.0491 0.288 0.482
120 3 8 0.214 0.0552 0.129 0.355
TNM_PATH_STAGE_GROUP=4A1
time n.risk n.event survival std.err lower 95% CI upper 95% CI
TNM_PATH_STAGE_GROUP=4B
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 49 28 0.652 0.0534 0.5553 0.766
24 36 8 0.539 0.0571 0.4383 0.664
36 27 7 0.432 0.0585 0.3309 0.563
48 18 5 0.349 0.0578 0.2524 0.483
60 13 3 0.288 0.0575 0.1949 0.426
120 2 3 0.180 0.0610 0.0927 0.350
TNM_PATH_STAGE_GROUP=N_A
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 17 3 0.857 0.0764 0.720 1.000
24 15 1 0.804 0.0884 0.648 0.997
36 10 1 0.737 0.1033 0.560 0.970
48 7 0 0.737 0.1033 0.560 0.970
60 4 0 0.737 0.1033 0.560 0.970
TNM_PATH_STAGE_GROUP=99
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5305 498 0.919 0.00347 0.913 0.926
24 4422 357 0.854 0.00463 0.845 0.863
36 3699 233 0.807 0.00532 0.796 0.817
48 3108 172 0.767 0.00586 0.756 0.779
60 2556 129 0.733 0.00633 0.720 0.745
120 630 294 0.603 0.00907 0.585 0.621
## Univariable Cox Proportional Hazard Model for: TNM_PATH_STAGE_GROUP
Loglik converged before variable 15 ; beta may be infinite. X matrix deemed to be singular; variable 4 8 12 17 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ TNM_PATH_STAGE_GROUP, data = data)
n= 9358, number of events= 2468
(1249 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
TNM_PATH_STAGE_GROUP1 -3.725e-01 6.890e-01 9.445e-02 -3.944 8.02e-05 ***
TNM_PATH_STAGE_GROUP1A -7.176e-01 4.879e-01 8.732e-02 -8.218 2.22e-16 ***
TNM_PATH_STAGE_GROUP1B -2.980e-01 7.423e-01 1.293e-01 -2.305 0.021151 *
TNM_PATH_STAGE_GROUP1C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP2 4.449e-01 1.560e+00 1.976e-01 2.252 0.024350 *
TNM_PATH_STAGE_GROUP2A 2.086e-01 1.232e+00 2.249e-01 0.927 0.353788
TNM_PATH_STAGE_GROUP2B 5.228e-01 1.687e+00 1.395e-01 3.747 0.000179 ***
TNM_PATH_STAGE_GROUP2C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP3 8.897e-01 2.434e+00 1.813e-01 4.908 9.18e-07 ***
TNM_PATH_STAGE_GROUP3A 8.628e-01 2.370e+00 1.641e-01 5.260 1.44e-07 ***
TNM_PATH_STAGE_GROUP3B 9.013e-01 2.463e+00 2.015e-01 4.472 7.75e-06 ***
TNM_PATH_STAGE_GROUP3C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUP4 1.132e+00 3.103e+00 1.054e-01 10.742 < 2e-16 ***
TNM_PATH_STAGE_GROUP4A 1.287e+00 3.622e+00 1.196e-01 10.763 < 2e-16 ***
TNM_PATH_STAGE_GROUP4A1 -9.525e+00 7.301e-05 4.039e+02 -0.024 0.981184
TNM_PATH_STAGE_GROUP4B 1.371e+00 3.939e+00 1.384e-01 9.908 < 2e-16 ***
TNM_PATH_STAGE_GROUP4C NA NA 0.000e+00 NA NA
TNM_PATH_STAGE_GROUPN_A 1.709e-01 1.186e+00 4.480e-01 0.381 0.702862
TNM_PATH_STAGE_GROUP99 NA NA 0.000e+00 NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1 6.890e-01 1.451e+00 0.5726 0.8291
TNM_PATH_STAGE_GROUP1A 4.879e-01 2.049e+00 0.4112 0.5790
TNM_PATH_STAGE_GROUP1B 7.423e-01 1.347e+00 0.5761 0.9563
TNM_PATH_STAGE_GROUP1C NA NA NA NA
TNM_PATH_STAGE_GROUP2 1.560e+00 6.409e-01 1.0593 2.2984
TNM_PATH_STAGE_GROUP2A 1.232e+00 8.117e-01 0.7927 1.9145
TNM_PATH_STAGE_GROUP2B 1.687e+00 5.928e-01 1.2832 2.2174
TNM_PATH_STAGE_GROUP2C NA NA NA NA
TNM_PATH_STAGE_GROUP3 2.434e+00 4.108e-01 1.7065 3.4728
TNM_PATH_STAGE_GROUP3A 2.370e+00 4.220e-01 1.7182 3.2686
TNM_PATH_STAGE_GROUP3B 2.463e+00 4.060e-01 1.6591 3.6558
TNM_PATH_STAGE_GROUP3C NA NA NA NA
TNM_PATH_STAGE_GROUP4 3.103e+00 3.223e-01 2.5238 3.8152
TNM_PATH_STAGE_GROUP4A 3.622e+00 2.761e-01 2.8655 4.5794
TNM_PATH_STAGE_GROUP4A1 7.301e-05 1.370e+04 0.0000 Inf
TNM_PATH_STAGE_GROUP4B 3.939e+00 2.539e-01 3.0033 5.1661
TNM_PATH_STAGE_GROUP4C NA NA NA NA
TNM_PATH_STAGE_GROUPN_A 1.186e+00 8.429e-01 0.4931 2.8544
TNM_PATH_STAGE_GROUP99 NA NA NA NA
Concordance= 0.597 (se = 0.005 )
Rsquare= 0.045 (max possible= 0.989 )
Likelihood ratio test= 427.8 on 14 df, p=0
Wald test = 508.4 on 14 df, p=0
Score (logrank) test = 582 on 14 df, p=0
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 6 rows containing missing values (geom_errorbar).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 20 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 15.



Margins
uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n events median 0.95LCL 0.95UCL
MARGINS=No Residual 794 120 NA NA NA
MARGINS=Residual, NOS 166 32 NA 109.7 NA
MARGINS=Microscopic Resid 68 16 NA 131.7 NA
MARGINS=Macroscopic Resid 63 14 NA 86.4 NA
MARGINS=Not evaluable 418 89 NA NA NA
MARGINS=No surg 8183 2228 158 141.7 NA
MARGINS=Unknown 915 220 NA 147.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
MARGINS=No Residual
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 685 23 0.969 0.00628 0.957 0.982
24 592 25 0.932 0.00948 0.914 0.951
36 510 16 0.906 0.01125 0.884 0.928
48 436 16 0.876 0.01317 0.850 0.902
60 364 10 0.854 0.01451 0.826 0.883
120 89 27 0.757 0.02257 0.714 0.802
MARGINS=Residual, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 140 9 0.943 0.0185 0.907 0.980
24 116 5 0.908 0.0236 0.862 0.955
36 94 6 0.859 0.0296 0.802 0.919
48 83 3 0.830 0.0329 0.768 0.897
60 69 1 0.819 0.0343 0.755 0.889
120 11 8 0.609 0.0760 0.477 0.777
MARGINS=Microscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 61 2 0.969 0.0217 0.927 1.000
24 51 3 0.919 0.0350 0.853 0.990
36 42 3 0.860 0.0463 0.774 0.956
48 38 1 0.838 0.0501 0.745 0.942
60 33 1 0.816 0.0534 0.718 0.928
120 15 5 0.682 0.0713 0.556 0.837
MARGINS=Macroscopic Resid
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 48 5 0.913 0.0372 0.843 0.989
24 42 2 0.873 0.0453 0.788 0.966
36 31 2 0.821 0.0553 0.720 0.937
48 26 1 0.794 0.0598 0.685 0.920
60 22 1 0.763 0.0649 0.646 0.902
120 3 3 0.604 0.0995 0.437 0.834
MARGINS=Not evaluable
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 350 25 0.936 0.0124 0.912 0.961
24 294 23 0.872 0.0173 0.838 0.906
36 248 8 0.846 0.0191 0.810 0.884
48 209 12 0.804 0.0217 0.762 0.847
60 162 6 0.778 0.0234 0.733 0.825
120 33 13 0.699 0.0301 0.642 0.760
MARGINS=No surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6501 700 0.909 0.00328 0.903 0.916
24 5401 437 0.845 0.00426 0.836 0.853
36 4388 329 0.790 0.00494 0.780 0.800
48 3528 222 0.747 0.00546 0.736 0.757
60 2835 161 0.710 0.00592 0.698 0.721
120 631 338 0.571 0.00880 0.554 0.588
MARGINS=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 714 83 0.903 0.0102 0.883 0.923
24 600 48 0.839 0.0130 0.814 0.865
36 501 19 0.810 0.0141 0.783 0.838
48 420 14 0.786 0.0151 0.757 0.816
60 329 20 0.746 0.0168 0.714 0.779
120 83 31 0.638 0.0242 0.593 0.688
## Univariable Cox Proportional Hazard Model for: MARGINS
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ MARGINS, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
MARGINSResidual, NOS 0.33665 1.40024 0.19897 1.692 0.09065 .
MARGINSMicroscopic Resid 0.36848 1.44554 0.26617 1.384 0.16624
MARGINSMacroscopic Resid 0.59271 1.80889 0.28246 2.098 0.03587 *
MARGINSNot evaluable 0.43464 1.54440 0.13990 3.107 0.00189 **
MARGINSNo surg 0.74715 2.11098 0.09374 7.971 1.55e-15 ***
MARGINSUnknown 0.60737 1.83560 0.11350 5.351 8.73e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS 1.400 0.7142 0.9481 2.068
MARGINSMicroscopic Resid 1.446 0.6918 0.8580 2.436
MARGINSMacroscopic Resid 1.809 0.5528 1.0399 3.147
MARGINSNot evaluable 1.544 0.6475 1.1740 2.032
MARGINSNo surg 2.111 0.4737 1.7567 2.537
MARGINSUnknown 1.836 0.5448 1.4695 2.293
Concordance= 0.534 (se = 0.004 )
Rsquare= 0.009 (max possible= 0.988 )
Likelihood ratio test= 92.95 on 6 df, p=0
Wald test = 77.38 on 6 df, p=1.243e-14
Score (logrank) test = 80.26 on 6 df, p=3.109e-15
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: MARGINS



Margins Yes/No
#uni_var(test_var = "MARGINS_YN", data_imp = data)
30 Day Readmission
uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 10284 2614 NA 158.3 NA
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 37 12 NA 29.8 NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same 58 22 78 54.1 NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same 1 0 NA NA NA
READM_HOSP_30_DAYS_F=9 227 71 NA 124.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8241 813 0.916 0.00282 0.910 0.922
24 6882 520 0.855 0.00369 0.848 0.862
36 5634 368 0.806 0.00427 0.798 0.815
48 4584 263 0.766 0.00473 0.757 0.775
60 3694 187 0.732 0.00513 0.722 0.742
120 827 413 0.599 0.00769 0.584 0.614
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 26 8 0.774 0.0706 0.647 0.925
24 20 1 0.743 0.0743 0.611 0.904
36 14 3 0.631 0.0866 0.483 0.826
48 10 0 0.631 0.0866 0.483 0.826
60 5 0 0.631 0.0866 0.483 0.826
120 1 0 0.631 0.0866 0.483 0.826
READM_HOSP_30_DAYS_F=Plan_Readmit_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 46 7 0.874 0.0448 0.790 0.966
24 38 6 0.759 0.0584 0.653 0.883
36 32 3 0.697 0.0636 0.583 0.834
48 26 1 0.674 0.0656 0.557 0.816
60 15 3 0.580 0.0761 0.449 0.750
120 3 2 0.464 0.0953 0.310 0.694
READM_HOSP_30_DAYS_F=PlanUnplan_Same
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
READM_HOSP_30_DAYS_F=9
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 185 19 0.909 0.0198 0.871 0.949
24 155 16 0.827 0.0267 0.776 0.881
36 133 9 0.775 0.0301 0.719 0.837
48 119 5 0.746 0.0317 0.686 0.810
60 100 10 0.681 0.0349 0.616 0.753
120 34 10 0.581 0.0435 0.502 0.673
## Univariable Cox Proportional Hazard Model for: READM_HOSP_30_DAYS_F
Loglik converged before variable 3 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ READM_HOSP_30_DAYS_F, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 5.350e-01 1.707e+00 2.894e-01 1.849 0.0645 .
READM_HOSP_30_DAYS_FPlan_Readmit_Same 4.746e-01 1.607e+00 2.141e-01 2.216 0.0267 *
READM_HOSP_30_DAYS_FPlanUnplan_Same -9.995e+00 4.562e-05 2.706e+02 -0.037 0.9705
READM_HOSP_30_DAYS_F9 8.541e-02 1.089e+00 1.203e-01 0.710 0.4779
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 1.707e+00 5.857e-01 9.683e-01 3.011e+00
READM_HOSP_30_DAYS_FPlan_Readmit_Same 1.607e+00 6.221e-01 1.056e+00 2.446e+00
READM_HOSP_30_DAYS_FPlanUnplan_Same 4.562e-05 2.192e+04 1.973e-235 1.054e+226
READM_HOSP_30_DAYS_F9 1.089e+00 9.181e-01 8.603e-01 1.379e+00
Concordance= 0.504 (se = 0.002 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 8.12 on 4 df, p=0.08718
Wald test = 8.71 on 4 df, p=0.06866
Score (logrank) test = 9.19 on 4 df, p=0.05659
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: READM_HOSP_30_DAYS_F



Radiation Type
uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None 7970 1928 NA 158.3 NA
RX_SUMM_RADIATION_F=Beam Radiation 2495 754 150.1 136.1 NA
RX_SUMM_RADIATION_F=Radioactive Implants 26 5 NA 58.2 NA
RX_SUMM_RADIATION_F=Radioisotopes 1 1 90.8 NA NA
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes 1 0 NA NA NA
RX_SUMM_RADIATION_F=Radiation, NOS 52 16 113.5 89.4 NA
RX_SUMM_RADIATION_F=Unknown 62 15 126.8 79.6 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
RX_SUMM_RADIATION_F=None
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6252 651 0.913 0.00328 0.906 0.919
24 5243 352 0.859 0.00416 0.850 0.867
36 4281 262 0.813 0.00481 0.803 0.822
48 3474 193 0.773 0.00536 0.763 0.784
60 2755 147 0.737 0.00587 0.726 0.749
120 620 289 0.609 0.00895 0.591 0.626
RX_SUMM_RADIATION_F=Beam Radiation
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2128 189 0.921 0.00549 0.911 0.932
24 1746 184 0.838 0.00773 0.823 0.853
36 1443 117 0.778 0.00892 0.761 0.796
48 1199 71 0.738 0.00968 0.719 0.757
60 1013 49 0.706 0.01027 0.686 0.726
120 236 128 0.572 0.01417 0.545 0.601
RX_SUMM_RADIATION_F=Radioactive Implants
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 23 1 0.958 0.0408 0.882 1.000
24 19 2 0.867 0.0716 0.737 1.000
36 15 1 0.819 0.0823 0.673 0.997
48 12 0 0.819 0.0823 0.673 0.997
60 3 1 0.682 0.1422 0.454 1.000
120 1 0 0.682 0.1422 0.454 1.000
RX_SUMM_RADIATION_F=Radioisotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Beam + Imp or Isotopes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
48 1 0 1 0 1 1
60 1 0 1 0 1 1
RX_SUMM_RADIATION_F=Radiation, NOS
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 45 3 0.939 0.0342 0.874 1.000
24 43 1 0.918 0.0395 0.843 0.998
36 35 2 0.870 0.0497 0.778 0.973
48 23 4 0.759 0.0679 0.637 0.904
60 20 1 0.724 0.0730 0.594 0.882
120 4 4 0.440 0.1307 0.246 0.788
RX_SUMM_RADIATION_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 49 3 0.943 0.0317 0.883 1.000
24 43 4 0.865 0.0476 0.776 0.963
36 38 1 0.844 0.0507 0.750 0.950
48 30 1 0.820 0.0547 0.720 0.935
60 21 2 0.758 0.0658 0.639 0.899
120 4 3 0.634 0.0857 0.486 0.826
## Univariable Cox Proportional Hazard Model for: RX_SUMM_RADIATION_F
Loglik converged before variable 4 ; beta may be infinite.
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_SUMM_RADIATION_F, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
RX_SUMM_RADIATION_FBeam Radiation 1.304e-01 1.139e+00 4.296e-02 3.034 0.00241 **
RX_SUMM_RADIATION_FRadioactive Implants -1.562e-01 8.554e-01 4.478e-01 -0.349 0.72722
RX_SUMM_RADIATION_FRadioisotopes 9.102e-01 2.485e+00 1.000e+00 0.910 0.36286
RX_SUMM_RADIATION_FBeam + Imp or Isotopes -1.097e+01 1.726e-05 3.737e+02 -0.029 0.97659
RX_SUMM_RADIATION_FRadiation, NOS 1.089e-01 1.115e+00 2.510e-01 0.434 0.66457
RX_SUMM_RADIATION_FUnknown -9.479e-03 9.906e-01 2.592e-01 -0.037 0.97083
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation 1.139e+00 8.778e-01 1.047e+00 1.239
RX_SUMM_RADIATION_FRadioactive Implants 8.554e-01 1.169e+00 3.556e-01 2.058
RX_SUMM_RADIATION_FRadioisotopes 2.485e+00 4.024e-01 3.498e-01 17.651
RX_SUMM_RADIATION_FBeam + Imp or Isotopes 1.726e-05 5.793e+04 1.482e-323 Inf
RX_SUMM_RADIATION_FRadiation, NOS 1.115e+00 8.969e-01 6.817e-01 1.824
RX_SUMM_RADIATION_FUnknown 9.906e-01 1.010e+00 5.960e-01 1.646
Concordance= 0.51 (se = 0.005 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 10.78 on 6 df, p=0.09542
Wald test = 10.27 on 6 df, p=0.1138
Score (logrank) test = 10.76 on 6 df, p=0.09593
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_SUMM_RADIATION_F



Lymphovascular Invasion
#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)
Endoscopic/Robotic
uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
4687 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg 5006 1000 NA 91.7 NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap 21 3 80.1 NA NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open 2 1 41.9 NA NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown 800 115 93.9 93.9 NA
RX_HOSP_SURG_APPR_2010_F=Unknown 91 45 21.5 14.9 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
4687 observations deleted due to missingness
RX_HOSP_SURG_APPR_2010_F=No_Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3882 367 0.921 0.00397 0.913 0.929
24 3043 237 0.860 0.00532 0.850 0.871
36 2199 171 0.806 0.00640 0.794 0.819
48 1462 107 0.760 0.00744 0.746 0.775
60 889 69 0.715 0.00878 0.698 0.733
RX_HOSP_SURG_APPR_2010_F=Endo_Lap
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 18 0 1.000 0.000 1.000 1
24 14 0 1.000 0.000 1.000 1
36 11 0 1.000 0.000 1.000 1
48 8 2 0.818 0.116 0.619 1
60 4 0 0.818 0.116 0.619 1
RX_HOSP_SURG_APPR_2010_F=Endo_Lap_to_Open
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2 0 1 0 1 1
24 1 0 1 0 1 1
36 1 0 1 0 1 1
RX_HOSP_SURG_APPR_2010_F=Open_Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 637 47 0.936 0.00907 0.918 0.954
24 514 27 0.893 0.01185 0.870 0.916
36 377 14 0.865 0.01361 0.839 0.892
48 280 10 0.840 0.01543 0.810 0.870
60 181 7 0.814 0.01779 0.780 0.850
RX_HOSP_SURG_APPR_2010_F=Unknown
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 51 27 0.677 0.0516 0.583 0.786
24 25 15 0.456 0.0590 0.354 0.588
36 18 1 0.437 0.0596 0.335 0.571
48 13 1 0.413 0.0610 0.309 0.552
60 8 0 0.413 0.0610 0.309 0.552
## Univariable Cox Proportional Hazard Model for: RX_HOSP_SURG_APPR_2010_F
X matrix deemed to be singular; variable 1 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)
n= 5920, number of events= 1164
(4687 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RX_HOSP_SURG_APPR_2010_FRobot_Assist NA NA 0.00000 NA NA
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA 0.00000 NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap -0.44921 0.63813 0.57823 -0.777 0.437
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 1.07107 2.91851 1.00060 1.070 0.284
RX_HOSP_SURG_APPR_2010_FOpen_Unknown -0.40061 0.66991 0.09853 -4.066 4.78e-05 ***
RX_HOSP_SURG_APPR_2010_FUnknown 1.31509 3.72507 0.15265 8.615 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist NA NA NA NA
RX_HOSP_SURG_APPR_2010_FRobot_to_Open NA NA NA NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap 0.6381 1.5671 0.2055 1.9820
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open 2.9185 0.3426 0.4106 20.7432
RX_HOSP_SURG_APPR_2010_FOpen_Unknown 0.6699 1.4927 0.5523 0.8126
RX_HOSP_SURG_APPR_2010_FUnknown 3.7251 0.2685 2.7619 5.0242
Concordance= 0.538 (se = 0.006 )
Rsquare= 0.013 (max possible= 0.959 )
Likelihood ratio test= 74.56 on 4 df, p=2.442e-15
Wald test = 97.52 on 4 df, p=0
Score (logrank) test = 111.6 on 4 df, p=0
Removed 3 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: RX_HOSP_SURG_APPR_2010_F



Surgery Radiation Sequence
uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone 1648 309 NA NA NA
SURG_RAD_SEQ=Surg then Rad 630 127 NA NA NA
SURG_RAD_SEQ=Rad Alone 1900 633 130.6 112.3 NA
SURG_RAD_SEQ=No Treatment 6259 1585 NA 158.3 NA
SURG_RAD_SEQ=Other 158 59 117.8 69.3 NA
SURG_RAD_SEQ=Rad before and after Surg 3 2 134.3 36.2 NA
SURG_RAD_SEQ=Rad then Surg 9 4 60.8 25.7 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
SURG_RAD_SEQ=Surg Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1333 96 0.937 0.00619 0.925 0.950
24 1135 58 0.894 0.00809 0.879 0.910
36 953 31 0.868 0.00910 0.851 0.886
48 801 37 0.833 0.01046 0.812 0.853
60 635 26 0.803 0.01160 0.781 0.826
120 133 56 0.690 0.01834 0.655 0.727
SURG_RAD_SEQ=Surg then Rad
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 566 24 0.961 0.00791 0.945 0.976
24 491 32 0.904 0.01227 0.880 0.928
36 418 20 0.864 0.01453 0.836 0.893
48 366 8 0.847 0.01547 0.817 0.878
60 315 11 0.821 0.01693 0.788 0.855
120 90 27 0.720 0.02400 0.674 0.769
SURG_RAD_SEQ=Rad Alone
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1594 166 0.909 0.00672 0.896 0.923
24 1292 148 0.820 0.00923 0.802 0.839
36 1057 98 0.755 0.01061 0.734 0.776
48 851 66 0.704 0.01159 0.682 0.727
60 709 40 0.669 0.01227 0.645 0.693
120 143 104 0.515 0.01738 0.482 0.550
SURG_RAD_SEQ=No Treatment
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 4887 535 0.909 0.00377 0.901 0.916
24 4081 291 0.852 0.00479 0.842 0.861
36 3303 229 0.801 0.00557 0.790 0.812
48 2650 154 0.760 0.00618 0.748 0.772
60 2105 117 0.723 0.00675 0.710 0.737
120 480 230 0.591 0.01022 0.572 0.612
SURG_RAD_SEQ=Other
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 108 26 0.815 0.0328 0.753 0.882
24 88 13 0.714 0.0390 0.641 0.794
36 78 3 0.688 0.0403 0.613 0.772
48 68 3 0.660 0.0417 0.583 0.747
60 47 6 0.598 0.0449 0.516 0.693
120 17 7 0.481 0.0549 0.384 0.601
SURG_RAD_SEQ=Rad before and after Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3 0 1.000 0.000 1.0 1
24 3 0 1.000 0.000 1.0 1
36 3 0 1.000 0.000 1.0 1
48 2 1 0.667 0.272 0.3 1
60 2 0 0.667 0.272 0.3 1
120 2 0 0.667 0.272 0.3 1
SURG_RAD_SEQ=Rad then Surg
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 8 0 1.000 0.000 1.000 1
24 6 1 0.875 0.117 0.673 1
36 2 2 0.583 0.186 0.313 1
48 2 0 0.583 0.186 0.313 1
60 1 0 0.583 0.186 0.313 1
## Univariable Cox Proportional Hazard Model for: SURG_RAD_SEQ
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -0.09627 0.90822 0.10544 -0.913 0.3612
SURG_RAD_SEQRad Alone 0.58129 1.78834 0.06940 8.376 < 2e-16 ***
SURG_RAD_SEQNo Treatment 0.36684 1.44317 0.06219 5.898 3.67e-09 ***
SURG_RAD_SEQOther 0.83037 2.29416 0.14209 5.844 5.10e-09 ***
SURG_RAD_SEQRad before and after Surg 0.76765 2.15469 0.70950 1.082 0.2793
SURG_RAD_SEQRad then Surg 1.25753 3.51672 0.50338 2.498 0.0125 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 0.9082 1.1011 0.7386 1.117
SURG_RAD_SEQRad Alone 1.7883 0.5592 1.5609 2.049
SURG_RAD_SEQNo Treatment 1.4432 0.6929 1.2776 1.630
SURG_RAD_SEQOther 2.2942 0.4359 1.7365 3.031
SURG_RAD_SEQRad before and after Surg 2.1547 0.4641 0.5364 8.656
SURG_RAD_SEQRad then Surg 3.5167 0.2844 1.3112 9.432
Concordance= 0.552 (se = 0.005 )
Rsquare= 0.011 (max possible= 0.988 )
Likelihood ratio test= 118.3 on 6 df, p=0
Wald test = 114 on 6 df, p=0
Score (logrank) test = 116.8 on 6 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURG_RAD_SEQ



Surgery Yes/No
uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n events median 0.95LCL 0.95UCL
SURGERY_YN=No 8199 2234 158.3 141.7 NA
SURGERY_YN=Ukn 99 41 91.7 53.9 NA
SURGERY_YN=Yes 2309 444 NA NA NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
SURGERY_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6503 710 0.908 0.00330 0.902 0.914
24 5386 445 0.842 0.00428 0.834 0.851
36 4370 327 0.788 0.00495 0.778 0.798
48 3507 221 0.745 0.00547 0.734 0.756
60 2817 157 0.709 0.00592 0.697 0.720
120 620 334 0.570 0.00882 0.553 0.588
SURGERY_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 68 17 0.807 0.0422 0.728 0.894
24 58 7 0.722 0.0484 0.633 0.823
36 54 3 0.684 0.0506 0.592 0.791
48 51 2 0.658 0.0519 0.564 0.768
60 37 5 0.591 0.0546 0.493 0.708
120 20 6 0.476 0.0613 0.370 0.613
SURGERY_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 1928 120 0.945 0.00491 0.935 0.954
24 1652 91 0.898 0.00669 0.885 0.911
36 1390 53 0.867 0.00768 0.852 0.882
48 1182 46 0.837 0.00861 0.820 0.854
60 960 38 0.808 0.00952 0.789 0.827
120 225 85 0.699 0.01444 0.671 0.728
## Univariable Cox Proportional Hazard Model for: SURGERY_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURGERY_YN, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
SURGERY_YNUkn 0.36645 1.44260 0.15768 2.324 0.0201 *
SURGERY_YNYes -0.45245 0.63607 0.05198 -8.704 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn 1.4426 0.6932 1.0591 1.9650
SURGERY_YNYes 0.6361 1.5722 0.5745 0.7043
Concordance= 0.54 (se = 0.004 )
Rsquare= 0.009 (max possible= 0.988 )
Likelihood ratio test= 90.89 on 2 df, p=0
Wald test = 83.66 on 2 df, p=0
Score (logrank) test = 85.25 on 2 df, p=0
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).
## Unadjusted Kaplan Meier Overall Survival Curve for: SURGERY_YN



Radiation Yes/No
uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
69 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
RADIATION_YN=No 7963 1921 NA 158 NA
RADIATION_YN=Yes 2575 776 150 136 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
69 observations deleted due to missingness
RADIATION_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 6252 644 0.914 0.00326 0.907 0.920
24 5243 352 0.859 0.00416 0.851 0.868
36 4281 262 0.814 0.00481 0.804 0.823
48 3474 193 0.774 0.00535 0.763 0.784
60 2755 147 0.738 0.00587 0.727 0.750
120 620 289 0.609 0.00896 0.592 0.627
RADIATION_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2198 193 0.922 0.00538 0.912 0.933
24 1810 187 0.840 0.00757 0.825 0.855
36 1495 120 0.781 0.00874 0.764 0.798
48 1236 75 0.739 0.00951 0.721 0.758
60 1038 51 0.707 0.01012 0.687 0.727
120 241 133 0.570 0.01412 0.543 0.598
## Univariable Cox Proportional Hazard Model for: RADIATION_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ RADIATION_YN, data = data)
n= 10538, number of events= 2697
(69 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
RADIATION_YNYes 0.13141 1.14044 0.04255 3.089 0.00201 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes 1.14 0.8769 1.049 1.24
Concordance= 0.509 (se = 0.005 )
Rsquare= 0.001 (max possible= 0.988 )
Likelihood ratio test= 9.36 on 1 df, p=0.002218
Wald test = 9.54 on 1 df, p=0.00201
Score (logrank) test = 9.55 on 1 df, p=0.001995
## Unadjusted Kaplan Meier Overall Survival Curve for: RADIATION_YN



Chemo Yes/No
uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n events median 0.95LCL 0.95UCL
CHEMO_YN=No 7139 1376 NA NA NA
CHEMO_YN=Yes 3109 1271 87.9 78.1 97.6
CHEMO_YN=Ukn 359 72 NA 138.3 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
CHEMO_YN=No
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5826 383 0.943 0.00283 0.938 0.949
24 4980 234 0.903 0.00373 0.896 0.910
36 4096 207 0.863 0.00449 0.854 0.872
48 3344 148 0.829 0.00510 0.819 0.839
60 2698 109 0.800 0.00565 0.789 0.811
120 622 264 0.670 0.00922 0.653 0.689
CHEMO_YN=Yes
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 2384 447 0.850 0.00657 0.837 0.863
24 1861 298 0.738 0.00830 0.722 0.755
36 1498 169 0.667 0.00912 0.650 0.685
48 1211 111 0.615 0.00968 0.596 0.634
60 973 80 0.571 0.01014 0.552 0.592
120 204 149 0.435 0.01319 0.410 0.462
CHEMO_YN=Ukn
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 289 17 0.947 0.0124 0.923 0.972
24 255 11 0.911 0.0161 0.880 0.943
36 220 7 0.884 0.0185 0.849 0.921
48 185 10 0.843 0.0218 0.801 0.887
60 143 11 0.789 0.0258 0.740 0.841
120 39 12 0.682 0.0382 0.611 0.762
## Univariable Cox Proportional Hazard Model for: CHEMO_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ CHEMO_YN, data = data)
n= 10607, number of events= 2719
coef exp(coef) se(coef) z Pr(>|z|)
CHEMO_YNYes 0.872831 2.393677 0.038944 22.413 <2e-16 ***
CHEMO_YNUkn 0.009072 1.009113 0.120903 0.075 0.94
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes 2.394 0.4178 2.2178 2.584
CHEMO_YNUkn 1.009 0.9910 0.7962 1.279
Concordance= 0.609 (se = 0.005 )
Rsquare= 0.045 (max possible= 0.988 )
Likelihood ratio test= 489.8 on 2 df, p=0
Wald test = 514 on 2 df, p=0
Score (logrank) test = 547.3 on 2 df, p=0
Removed 1 rows containing missing values (geom_errorbar).
## Unadjusted Kaplan Meier Overall Survival Curve for: CHEMO_YN



Treatment Yes/No
uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
359 observations deleted due to missingness
n events median 0.95LCL 0.95UCL
Tx_YN=FALSE 3929 714 NA NA NA
Tx_YN=TRUE 6319 1933 145 134 NA
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
359 observations deleted due to missingness
Tx_YN=FALSE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 3125 225 0.939 0.00394 0.931 0.947
24 2673 105 0.906 0.00497 0.896 0.916
36 2172 101 0.869 0.00597 0.857 0.881
48 1738 76 0.835 0.00687 0.822 0.849
60 1373 60 0.803 0.00776 0.788 0.819
120 320 134 0.667 0.01334 0.642 0.694
Tx_YN=TRUE
time n.risk n.event survival std.err lower 95% CI upper 95% CI
12 5085 605 0.899 0.00389 0.892 0.907
24 4168 427 0.820 0.00511 0.810 0.830
36 3422 275 0.763 0.00580 0.751 0.774
48 2817 183 0.719 0.00630 0.707 0.732
60 2298 129 0.684 0.00672 0.671 0.697
120 506 279 0.555 0.00933 0.537 0.573
## Univariable Cox Proportional Hazard Model for: Tx_YN
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ Tx_YN, data = data)
n= 10248, number of events= 2647
(359 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
Tx_YNTRUE 0.5157 1.6748 0.0438 11.77 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE 1.675 0.5971 1.537 1.825
Concordance= 0.559 (se = 0.005 )
Rsquare= 0.014 (max possible= 0.988 )
Likelihood ratio test= 148.8 on 1 df, p=0
Wald test = 138.6 on 1 df, p=0
Score (logrank) test = 141.7 on 1 df, p=0
## Unadjusted Kaplan Meier Overall Survival Curve for: Tx_YN



Tumor specific Variables
Node Size
Cox Proportional Hazard Ratio
Model #1
Full analysis
model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
data = data)
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS ==
0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F +
INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F +
EDUCATION_F, data = data)
n= 8596, number of events= 2505
(2011 observations deleted due to missingness)
coef exp(coef) se(coef) z Pr(>|z|)
SURG_RAD_SEQSurg then Rad -0.183495 0.832356 0.110571 -1.660 0.09701 .
SURG_RAD_SEQRad Alone 0.293231 1.340752 0.074138 3.955 7.65e-05 ***
SURG_RAD_SEQNo Treatment 0.330102 1.391111 0.066155 4.990 6.04e-07 ***
SURG_RAD_SEQOther 0.791889 2.207563 0.150024 5.278 1.30e-07 ***
SURG_RAD_SEQRad before and after Surg 1.053763 2.868425 0.717837 1.468 0.14211
SURG_RAD_SEQRad then Surg 1.158605 3.185486 0.507675 2.282 0.02248 *
INSURANCE_FNone 0.554383 1.740867 0.130177 4.259 2.06e-05 ***
INSURANCE_FMedicaid 0.713597 2.041321 0.102865 6.937 4.00e-12 ***
INSURANCE_FMedicare 0.289526 1.335794 0.056976 5.082 3.74e-07 ***
INSURANCE_FOther Government 0.195108 1.215442 0.188105 1.037 0.29963
INSURANCE_FUnknown 0.045156 1.046192 0.134621 0.335 0.73730
AGE 0.052972 1.054401 0.002216 23.907 < 2e-16 ***
SEX_FFemale -0.257613 0.772895 0.041645 -6.186 6.17e-10 ***
RACE_FBlack 0.271642 1.312118 0.060840 4.465 8.01e-06 ***
RACE_FOther/Unk -0.297468 0.742696 0.137091 -2.170 0.03002 *
RACE_FAsian 0.045933 1.047005 0.146187 0.314 0.75336
INCOME_F$38,000 - $47,999 -0.005706 0.994311 0.068659 -0.083 0.93377
INCOME_F$48,000 - $62,999 0.004169 1.004178 0.073765 0.057 0.95493
INCOME_F$63,000 + -0.025892 0.974440 0.085177 -0.304 0.76114
U_R_FUrban 0.005681 1.005697 0.063094 0.090 0.92825
U_R_FRural -0.027776 0.972606 0.161282 -0.172 0.86327
FACILITY_TYPE_FComprehensive Comm Ca Program 0.014430 1.014534 0.096901 0.149 0.88163
FACILITY_TYPE_FAcademic/Research Program -0.149979 0.860726 0.092220 -1.626 0.10388
FACILITY_TYPE_FIntegrated Network Ca Program -0.008064 0.991968 0.116627 -0.069 0.94487
FACILITY_LOCATION_FMiddle Atlantic -0.130618 0.877553 0.090854 -1.438 0.15053
FACILITY_LOCATION_FSouth Atlantic -0.109552 0.896235 0.091146 -1.202 0.22939
FACILITY_LOCATION_FEast North Central -0.072717 0.929863 0.092932 -0.782 0.43393
FACILITY_LOCATION_FEast South Central -0.025457 0.974864 0.114931 -0.222 0.82470
FACILITY_LOCATION_FWest North Central 0.026372 1.026723 0.111119 0.237 0.81240
FACILITY_LOCATION_FWest South Central 0.096659 1.101485 0.118236 0.818 0.41364
FACILITY_LOCATION_FMountain -0.160768 0.851490 0.126945 -1.266 0.20536
FACILITY_LOCATION_FPacific -0.076405 0.926441 0.102613 -0.745 0.45652
EDUCATION_F13 - 20.9% -0.052519 0.948836 0.066812 -0.786 0.43183
EDUCATION_F7 - 12.9% -0.142440 0.867239 0.074311 -1.917 0.05526 .
EDUCATION_FLess than 7% -0.282180 0.754138 0.088017 -3.206 0.00135 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad 0.8324 1.2014 0.6702 1.0338
SURG_RAD_SEQRad Alone 1.3408 0.7458 1.1594 1.5504
SURG_RAD_SEQNo Treatment 1.3911 0.7189 1.2219 1.5837
SURG_RAD_SEQOther 2.2076 0.4530 1.6452 2.9622
SURG_RAD_SEQRad before and after Surg 2.8684 0.3486 0.7025 11.7130
SURG_RAD_SEQRad then Surg 3.1855 0.3139 1.1777 8.6161
INSURANCE_FNone 1.7409 0.5744 1.3488 2.2468
INSURANCE_FMedicaid 2.0413 0.4899 1.6686 2.4973
INSURANCE_FMedicare 1.3358 0.7486 1.1947 1.4936
INSURANCE_FOther Government 1.2154 0.8227 0.8407 1.7573
INSURANCE_FUnknown 1.0462 0.9558 0.8036 1.3621
AGE 1.0544 0.9484 1.0498 1.0590
SEX_FFemale 0.7729 1.2938 0.7123 0.8386
RACE_FBlack 1.3121 0.7621 1.1646 1.4783
RACE_FOther/Unk 0.7427 1.3464 0.5677 0.9716
RACE_FAsian 1.0470 0.9551 0.7862 1.3944
INCOME_F$38,000 - $47,999 0.9943 1.0057 0.8691 1.1375
INCOME_F$48,000 - $62,999 1.0042 0.9958 0.8690 1.1604
INCOME_F$63,000 + 0.9744 1.0262 0.8246 1.1515
U_R_FUrban 1.0057 0.9943 0.8887 1.1381
U_R_FRural 0.9726 1.0282 0.7090 1.3342
FACILITY_TYPE_FComprehensive Comm Ca Program 1.0145 0.9857 0.8390 1.2267
FACILITY_TYPE_FAcademic/Research Program 0.8607 1.1618 0.7184 1.0312
FACILITY_TYPE_FIntegrated Network Ca Program 0.9920 1.0081 0.7893 1.2467
FACILITY_LOCATION_FMiddle Atlantic 0.8776 1.1395 0.7344 1.0486
FACILITY_LOCATION_FSouth Atlantic 0.8962 1.1158 0.7496 1.0715
FACILITY_LOCATION_FEast North Central 0.9299 1.0754 0.7750 1.1156
FACILITY_LOCATION_FEast South Central 0.9749 1.0258 0.7782 1.2212
FACILITY_LOCATION_FWest North Central 1.0267 0.9740 0.8258 1.2766
FACILITY_LOCATION_FWest South Central 1.1015 0.9079 0.8736 1.3887
FACILITY_LOCATION_FMountain 0.8515 1.1744 0.6639 1.0920
FACILITY_LOCATION_FPacific 0.9264 1.0794 0.7577 1.1328
EDUCATION_F13 - 20.9% 0.9488 1.0539 0.8324 1.0816
EDUCATION_F7 - 12.9% 0.8672 1.1531 0.7497 1.0032
EDUCATION_FLess than 7% 0.7541 1.3260 0.6346 0.8961
Concordance= 0.709 (se = 0.006 )
Rsquare= 0.157 (max possible= 0.993 )
Likelihood ratio test= 1468 on 35 df, p=0
Wald test = 1370 on 35 df, p=0
Score (logrank) test = 1479 on 35 df, p=0
Summary of Model
model_one %>%
tidy(., exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Variable = term,
Hazard_Ratio = estimate) %>%
tbl_df %>%
print(n = nrow(.))
Prediction Logistic Regression Models
Surgery
no_Ukns <- data %>%
filter(SURGERY_YN != "Ukn") %>%
droplevels() %>%
mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
summary(fit_surg)
Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
data = no_Ukns)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.4763 -0.2283 -0.1847 -0.1274 0.9382
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.331234 0.033484 9.892 < 2e-16 ***
AGE_F(54,64] -0.023625 0.011750 -2.011 0.044397 *
AGE_F(64,74] -0.045829 0.012315 -3.721 0.000199 ***
AGE_F(74,100] -0.068805 0.013144 -5.235 1.69e-07 ***
SEX_FFemale 0.014941 0.008983 1.663 0.096314 .
RACE_FBlack -0.024934 0.013294 -1.876 0.060751 .
RACE_FOther/Unk -0.007248 0.024765 -0.293 0.769796
RACE_FAsian 0.018603 0.028730 0.648 0.517314
INCOME_F$38,000 - $47,999 -0.001819 0.016250 -0.112 0.910877
INCOME_F$48,000 - $62,999 0.030243 0.017093 1.769 0.076871 .
INCOME_F$63,000 + 0.039280 0.019272 2.038 0.041564 *
U_R_FUrban -0.027545 0.014850 -1.855 0.063638 .
U_R_FRural -0.029120 0.039379 -0.739 0.459628
FACILITY_TYPE_FComprehensive Comm Ca Program -0.049377 0.023967 -2.060 0.039406 *
FACILITY_TYPE_FAcademic/Research Program -0.128983 0.022488 -5.736 1.01e-08 ***
FACILITY_TYPE_FIntegrated Network Ca Program -0.043440 0.027970 -1.553 0.120433
FACILITY_LOCATION_FMiddle Atlantic 0.002350 0.019793 0.119 0.905492
FACILITY_LOCATION_FSouth Atlantic 0.004384 0.020575 0.213 0.831271
FACILITY_LOCATION_FEast North Central 0.024834 0.020804 1.194 0.232620
FACILITY_LOCATION_FEast South Central 0.034065 0.026357 1.292 0.196243
FACILITY_LOCATION_FWest North Central 0.013697 0.025103 0.546 0.585334
FACILITY_LOCATION_FWest South Central 0.029954 0.026445 1.133 0.257371
FACILITY_LOCATION_FMountain 0.134935 0.026869 5.022 5.22e-07 ***
FACILITY_LOCATION_FPacific -0.034005 0.022730 -1.496 0.134694
EDUCATION_F13 - 20.9% -0.009671 0.015711 -0.616 0.538214
EDUCATION_F7 - 12.9% -0.011591 0.017152 -0.676 0.499188
EDUCATION_FLess than 7% -0.035783 0.019664 -1.820 0.068834 .
EXPN_GROUPPre-Expansion -0.001719 0.012758 -0.135 0.892836
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for gaussian family taken to be 0.165531)
Null deviance: 1433.9 on 8515 degrees of freedom
Residual deviance: 1405.0 on 8488 degrees of freedom
(1992 observations deleted due to missingness)
AIC: 8880.5
Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
Odds ratio 2.5 % 97.5 %
(Intercept) 1.3926851 1.3042201 1.4871507
AGE_F(54,64] 0.9766521 0.9544172 0.9994049
AGE_F(64,74] 0.9552050 0.9324251 0.9785415
AGE_F(74,100] 0.9335084 0.9097670 0.9578694
SEX_FFemale 1.0150530 0.9973374 1.0330834
RACE_FBlack 0.9753741 0.9502876 1.0011229
RACE_FOther/Unk 0.9927786 0.9457411 1.0421557
RACE_FAsian 1.0187771 0.9629958 1.0777896
INCOME_F$38,000 - $47,999 0.9981827 0.9668926 1.0304855
INCOME_F$48,000 - $62,999 1.0307048 0.9967472 1.0658192
INCOME_F$63,000 + 1.0400618 1.0015083 1.0800995
U_R_FUrban 0.9728304 0.9449243 1.0015607
U_R_FRural 0.9712995 0.8991533 1.0492345
FACILITY_TYPE_FComprehensive Comm Ca Program 0.9518222 0.9081455 0.9975995
FACILITY_TYPE_FAcademic/Research Program 0.8789891 0.8410879 0.9185981
FACILITY_TYPE_FIntegrated Network Ca Program 0.9574901 0.9064140 1.0114444
FACILITY_LOCATION_FMiddle Atlantic 1.0023528 0.9642118 1.0420026
FACILITY_LOCATION_FSouth Atlantic 1.0043936 0.9646966 1.0457242
FACILITY_LOCATION_FEast North Central 1.0251449 0.9841856 1.0678087
FACILITY_LOCATION_FEast South Central 1.0346518 0.9825595 1.0895058
FACILITY_LOCATION_FWest North Central 1.0137912 0.9651187 1.0649184
FACILITY_LOCATION_FWest South Central 1.0304069 0.9783610 1.0852215
FACILITY_LOCATION_FMountain 1.1444624 1.0857514 1.2063481
FACILITY_LOCATION_FPacific 0.9665671 0.9244508 1.0106022
EDUCATION_F13 - 20.9% 0.9903760 0.9603447 1.0213465
EDUCATION_F7 - 12.9% 0.9884757 0.9557983 1.0222703
EDUCATION_FLess than 7% 0.9648499 0.9283719 1.0027612
EXPN_GROUPPre-Expansion 0.9982827 0.9736294 1.0235602
LS0tCnRpdGxlOiAiQ3V0YW5lb3VzIFQtQ2VsbCBMeW1waG9tYSBBbmFseXNpcyAtIEEgUmV2aWV3IG9mIHRoZSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzE2LzIwMTkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJ0aWR5ciIpCmxpYnJhcnkoImtuaXRyIikKbGlicmFyeSgidGFibGVvbmUiKQpsaWJyYXJ5KCJmb3JjYXRzIikKbGlicmFyeSgic3Vydml2YWwiKQpsaWJyYXJ5KCJucHN1cnYiKQpsaWJyYXJ5KCJicm9vbSIpCmxpYnJhcnkoInRpYmJsZSIpCmxpYnJhcnkoInJlYWRyIikKbGlicmFyeSgic3Vydm1pbmVyIikKbGlicmFyeSgic3RyaW5nciIpCgoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1UUlVFKQonJSFpbiUnIDwtIGZ1bmN0aW9uKHgseSkhKCclaW4lJyh4LHkpKQpgYGAKCmBgYHtyfQpwX3RhYmxlIDwtIGZ1bmN0aW9uKHRhYl9kYXRhLCAuLi4pIHsKICB0YWJfZGF0YV8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZSh0YWJfZGF0YSkpCiAgCiAgdGFibGVfcCA8LSBkby5jYWxsKENyZWF0ZVRhYmxlT25lLCAKICAgICAgICAgICAgICAgICAgICAgbGlzdChkYXRhID0gYXMubmFtZSh0YWJfZGF0YV8yKSwgaW5jbHVkZU5BID0gVFJVRSwgLi4uKSkKICB0YWJsZV9wX291dCA8LSBwcmludCh0YWJsZV9wLAogICAgICAgICAgICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHByaW50VG9nZ2xlID0gRkFMU0UpCiAga2FibGUodGFibGVfcF9vdXQsCiAgICAgICAgYWxpZ24gPSAiYyIpCn0KYGBgCgpgYGB7cn0KdW5pX3ZhciA8LSBmdW5jdGlvbih0ZXN0X3ZhciwgZGF0YV9pbXApIHsKCiAgICAgICAgICAgICAgICAKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIAogICAgICAgIGYgPC0gYXMuZm9ybXVsYShwYXN0ZSgiU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5uYW1lKHRlc3RfdmFyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiB+ICIgKSkKICAgICAgICAKICAgICAgICBkYXRhX2ltcF8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZShkYXRhX2ltcCkpCgogICAgICAgIGttX2ZpdCA8LSBkby5jYWxsKCJzdXJ2Zml0IiwgbGlzdChmb3JtdWxhID0gZiwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKICAgICAgICBwcmludChrbV9maXQpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIHByaW50KHN1bW1hcnkoa21fZml0LCB0aW1lcyA9IGMoMTIsIDI0LCAzNiwgNDgsIDYwLCAxMjApKSkKICAgICAgICBjYXQoIlxuIikKCgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbml2YXJpYWJsZSBDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBNb2RlbCBmb3I6ICIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgbl9sZXZlbHMgPC0gbmxldmVscyhkYXRhX2ltcFtbdGVzdF92YXJdXSkKCiAgICAgICAgaWYobl9sZXZlbHMgPT0gMSl7CiAgICAgICAgICAgICAgICBwcmludCgiT25seSBvbmUgbGV2ZWwsIG5vIENveCBtb2RlbCBwZXJmb3JtZWQiKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIH0gZWxzZSB7CgoKICAgICAgICAgICAgICAgIGNveF9maXQgPC0gZG8uY2FsbCgiY294cGgiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgICAgICAgICAgcHJpbnQoc3VtbWFyeShjb3hfZml0KSkKICAgICAgICAgICAgICAgIGNhdCgiXG4iKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkby5jYWxsKCJnZ2ZvcmVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KG1vZGVsID0gY294X2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKCiAgICAgICAgfQoKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMgVW5hZGp1c3RlZCBLYXBsYW4gTWVpZXIgT3ZlcmFsbCBTdXJ2aXZhbCBDdXJ2ZSBmb3I6ICIsIHRlc3RfdmFyKQoKCiAgICAgICAgcCA8LSBkby5jYWxsKCJnZ3N1cnZwbG90IiwKICAgICAgICAgICAgICAgICAgICAgbGlzdChmaXQgPSBrbV9maXQsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiamNvIiwgY2Vuc29yID0gRkFMU0UsIGxlZ2VuZCA9ICJyaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXR5cGUgPSAic3RyYXRhIiwgeGxhYiA9ICJUaW1lIChNb250aHMpIikpCgogICAgICAgIHByaW50KHApCgp9CgpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCk5ITGV4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfTkhMRXh0ci4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKYnJlYXN0IDwtICByZWFkX2Z3ZignTkNEQlBVRl9CcmVhc3QuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKdnVsdmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1Z1bHZhLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZhZ2luYSA8LSAgcmVhZF9md2YoJ05DREJQVUZfVmFnaW5hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnBlbmlzIDwtICByZWFkX2Z3ZignTkNEQlBVRl9QZW5pcy4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpvdGxldWsgPC0gcmVhZF9md2YoJ05DREJQVUZfT3RMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKb3RoZXJhY3V0ZWxldWsgIDwtIHJlYWRfZndmKCdOQ0RCUFVGX090QWNMZXVrLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAKQUxMICA8LSByZWFkX2Z3ZignTkNEQlBVRl9BTHltTGV1ay4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgoKI0NvbWJpbmUgZGF0YSBmb3IgYWxsIHN1YnNpdGVzCmRhdCA8LSBiaW5kX3Jvd3MobGlwLCBtZWxhbm9tYSwgc2tpbiwgaG9kZ2V4dHIsIGhvZGduZGFsLCBOSExuZGFsLCBicmVhc3QsIAogICAgICAgICAgICAgICAgIHZ1bHZhLCB2YWdpbmEsIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpybShsaXAsIG1lbGFub21hLCBza2luLCBob2RnZXh0ciwgaG9kZ25kYWwsIE5ITG5kYWwsIGJyZWFzdCwgdnVsdmEsIHZhZ2luYSwgCiAgIHBlbmlzLCBOSExleHRyLCBvdGxldWssIG90aGVyYWN1dGVsZXVrLCBBTEwpCgpwcmltX3NpdGVfdGV4dCA8LSBkYXRhX2ZyYW1lKFBSSU1BUllfU0lURSA9IGMoCiNOSEwgc2l0ZXMKIkMwMDAiLCAKIkMwMDEiLCAKIkMwMDIiLCAKIkMwMDMiLCAKIkMwMDQiLCAKIkMwMDUiLCAKIkMwMDYiLCAKIkMwMDgiLAoiQzAwOSIsIAoiQzAxOSIsIAoiQzAyMCIsIAoiQzAyMSIsCiJDMDIyIiwgCiJDMDIzIiwgCiJDMDI0IiwgCiJDMDI4IiwgCiJDMDI5IiwKIkMwMzAiLAoiQzAzMSIsCiJDMDM5IiwgCiJDMDQwIiwgCiJDMDQxIiwgCiJDMDQ4IiwKIkMwNDkiLCAKIkMwNTAiLCAKIkMwNTEiLCAKIkMwNTIiLCAKIkMwNTgiLCAKIkMwNTkiLAoiQzA2MCIsIAoiQzA2MSIsIAoiQzA2MiIsIAoiQzA2OCIsIAoiQzA2OSIsIAoiQzA3OSIsICAKIkMwOTgiLAoiQzA5OSIsCiJDMTExIiwKIkMxNDIiLAoiQzMwMCIsCiJDMzc5IiwKIkM0MjAiLAoiQzQyMiIsCiJDNDI0IiwKCiNza2luL21lbGFub21hCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQwIiwgIkM0NDEiLCAiQzQ0MiIsICJDNDQzIiwgIkM0NDQiLCAiQzQ0NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNDQ2IiwgIkM0NDciLCAiQzQ0OCIsICJDNDQ5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNicmVhc3QgLSBuaXBwbGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkM1MDAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3ZhZ2luYS92dWx2YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3BlbmlzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDNjAwIiwgIkM2MDEiLCAiQzYwMiIsICJDNjA4IiwgIkM2MDkiLCAiQzYzOSIsCgoiQzc3MCIsCiJDNzcxIiwKIkM3NzIiLAoiQzc3MyIsCiJDNzc0IiwKIkM3NzUiLAoiQzc3OCIsCiJDNzc5IiksCgpTSVRFX1RFWFQgPSBjKAoiQzAwLjAgRXh0ZXJuYWwgTGlwOiBVcHBlciBOT1MiLAoiQzAwLjEgRXh0ZXJuYWwgTGlwOiBMb3dlciBOT1MiLAoiQzAwLjIgRXh0ZXJuYWwgTGlwOiBOT1MiLAoiQzAwLjMgTGlwOiBVcHBlciBNdWNvc2EiLAoiQzAwLjQgTGlwOiBMb3dlciBNdWNvc2EiLAoiQzAwLjUgTGlwOiBNdWNvc2EgTk9TIiwKIkMwMC42IExpcDogQ29tbWlzc3VyZSIsCiJDMDAuOCBMaXA6IE92ZXJsYXBwaW5nIiwKIkMwMC45IExpcCBOT1MiLAoiQzAxLjkgVG9uZ3VlOiBCYXNlIE5PUyIsCiJDMDIuMCBUb25ndWU6IERvcnNhbCBOT1MiLAoiQzAyLjEgVG9uZ3VlOiBCb3JkZXIsIFRpcCIsCiJDMDIuMiBUb25ndWU6IFZlbnRyYWwgTk9TIiwKIkMwMi4zIFRvbmd1ZTogQW50ZXJpb3IgTk9TIiwKIkMwMi40IExpbmd1YWwgVG9uc2lsIiwKIkMwMi44IFRvbmd1ZTogT3ZlcmxhcHBpbmciLAoiQzAyLjkgVG9uZ3VlOiBOT1MiLAoiQzAzLjAgR3VtOiBVcHBlciIsCiJDMDMuMSBHdW06IExvd2VyIiwKIkMwMy45IEd1bSBOT1MiLAoiQzA0LjAgTW91dGg6IEFudGVyaW9yIEZsb29yIiwKIkMwNC4xIE1vdXRoOiBMYXRlcmFsIEZsb29yIiwKIkMwNC44IE1vdXRoOiBPdmVybGFwcGluZyBGbG9vciIsCiJDMDQuOSBGbG9vciBvZiBNb3V0aCBOT1MiLAoiQzA1LjAgSGFyZCBQYWxhdGUiLAoiQzA1LjEgU29mdCBQYWxhdGUgTk9TIiwKIkMwNS4yIFV2dWxhIiwKIkMwNS44IFBhbGF0ZTogT3ZlcmxhcHBpbmciLAoiQzA1LjkgUGFsYXRlIE5PUyIsCiJDMDYuMCBDaGVlayBNdWNvc2EiLAoiQzA2LjEgTW91dGg6IFZlc3RpYnVsZSIsCiJDMDYuMiBSZXRyb21vbGFyIEFyZWEiLAoiQzA2LjggTW91dGg6IE90aGVyIE92ZXJsYXBwaW5nIiwKIkMwNi45IE1vdXRoIE5PUyIsCiJDMDcuOSBQYXJvdGlkIEdsYW5kIiwKICAiQzA5LjggVG9uc2lsOiBPdmVybGFwcGluZyIsCiAgIkMwOS45IFRvbnNpbCBOT1MiLAogICJDMTEuMSBOYXNvcGhhcnlueDogUG9zdGVyIFdhbGwiLCAKICAiQzE0LjIgV2FsZGV5ZXIgUmluZyIsCiAgIkMzMC4wIE5hc2FsIENhdml0eSIsCiAgIkMzNy45IFRoeW11cyIsCiJDNDIuMCBCbG9vZCIsCiAgIkM0Mi4yIFNwbGVlbiIsCiJDNDIuNCBIZW1hdG9wb2lldGljIE5PUyIsCgogI3NraW4KIkM0NC4wIFNraW4gb2YgbGlwLCBOT1MiLAoiQzQ0LjEgRXllbGlkIiwKIkM0NC4yIEV4dGVybmFsIGVhciIsCiJDNDQuMyBTa2luIG9mIGVhciBhbmQgdW5zcGVjaWZpZWQgcGFydHMgb2YgZmFjZSIsCiJDNDQuNCBTa2luIG9mIHNjYWxwIGFuZCBuZWNrIiwKIkM0NC41IFNraW4gb2YgdHJ1bmsiLAoiQzQ0LjYgU2tpbiBvZiB1cHBlciBsaW1iIGFuZCBzaG91bGRlciIsCiJDNDQuNyBTa2luIG9mIGxvd2VyIGxpbWIgYW5kIGhpcCIsCiJDNDQuOCBPdmVybGFwcGluZyBsZXNpb24gb2Ygc2tpbiIsCiJDNDQuOSBTa2luLCBOT1MiLCAKCiNicmVhc3QKIkM1MC4wIE5pcHBsZSIsCgojdnVsdmEvdmFnaW5hCiJDNTEuMCBMYWJpdW0gbWFqdXMiLAoiQzUxLjEgTGFiaXVtIG1pbnVzIiwKIkM1MS4yIENsaXRvcmlzIiwKIkM1MS44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiB2dWx2YSIsCiJDNTEuOSBWdWx2YSwgTk9TIiwKIkM1Mi45IFZhZ2luYSwgTk9TIiwKCiNwZW5pcwoiQzYwLjAgUHJlcHVjZSIsCiJDNjAuMSBHbGFucyBwZW5pcyIsCiJDNjAuMiBCb2R5IG9mIHBlbmlzIiwKIkM2MC44IE92ZXJsYXBwaW5nIGxlc2lvbiBvZiBwZW5pcyIsCiJDNjAuOSBQZW5pcyIsCiJDNjMuMiBTY3JvdHVtLCBOT1MiLAoKICAiQzc3LjAgTHltcGggTm9kZXM6IEhlYWRGYWNlTmVjayIsCiAgIkM3Ny4xIEludHJhdGhvcmFjaWMgTHltcGggTm9kZXMiLAogICJDNzcuMiBJbnRyYS1hYmRvbWluYWwgTHltcGhOb2RlcyIsCiAgIkM3Ny4zIEx5bXBoIE5vZGVzIG9mIGF4aWxsYSBvciBhcm0gIiwKICAiQzc3LjQgTHltcGggTm9kZXM6IExlZyIsCiAgIkM3Ny41IFBlbHZpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny44IEx5bXBoIE5vZGVzOiBtdWx0aXBsZSByZWdpb24iLAogICJDNzcuOSBMeW1waCBOb2RlIE5PUyIpKQoKCmRhdCA8LSBtZXJnZShkYXQsIHByaW1fc2l0ZV90ZXh0LCBieSA9ICJQUklNQVJZX1NJVEUiLCBhbGwueCA9IFRSVUUpIAoKcm0ocHJpbV9zaXRlX3RleHQpCgojIGNvbnZlcnQgbnVtZXJpYyB2YXJpYWJsZXMgZnJvbSBjaGFyYWN0ZXIgY2xhc3MgdG8gbnVtZXJpYyBjbGFzcwpudW1fdmFycyA8LSBjKCJBR0UiLCAiQ1JPV0ZMWSIsICJUVU1PUl9TSVpFIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwKICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsIAogICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwKICAgICAgICAgICAgICAiUkFEX05VTV9UUkVBVF9WT0wiKQoKZGF0W251bV92YXJzXSA8LSBsYXBwbHkoZGF0W251bV92YXJzXSwgYXMubnVtZXJpYykKCgojIGNvbnZlcnQgZmFjdG9yIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBmYWN0b3IgY2xhc3MKdmFycyA8LSBuYW1lcyhkYXQpCmZhY3RfdmFycyA8LSB2YXJzWyEodmFycyAlaW4lIG51bV92YXJzKV0gIyBiYXNpY2FsbHkgYWxsIG9mIHRoZSBub24tbnVtZXJpY3MKCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuY2hhcmFjdGVyKQpkYXRbZmFjdF92YXJzXSA8LSBsYXBwbHkoZGF0W2ZhY3RfdmFyc10sIGFzLmZhY3RvcikKCmRhdCA8LSBkYXQgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX1RZUEVfRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfVFlQRV9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbXVuaXR5IENhbmNlciBQcm9ncmFtIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tcHJlaGVuc2l2ZSBDb21tIENhIFByb2dyYW0iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY2FkZW1pYy9SZXNlYXJjaCBQcm9ncmFtIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZWdyYXRlZCBOZXR3b3JrIENhIFByb2dyYW0iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfTE9DQVRJT05fRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfTE9DQVRJT05fQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBFbmdsYW5kIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIEF0bGFudGljIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGggQXRsYW50aWMiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IE5vcnRoIENlbnRyYWwiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IFNvdXRoIENlbnRyYWwiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IE5vcnRoIENlbnRyYWwiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IFNvdXRoIENlbnRyYWwiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMiID0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQgb2YgVVMiID0gIjAiKSkgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX0dFT0dSQVBIWSA9IGZjdF9jb2xsYXBzZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3J0aGVhc3QiID0gYygiMSIsICIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGgiID0gYygiMyIsICI3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkd2VzdCIgPSBjKCI0IiwgIjUiLCAiNiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFX0YgPSBjdXQoQUdFLCBjKDAsIDU0LCA2NCwgNzQsIDEwMCkpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFXzQwID0gY3V0KEFHRSwgYygwLCA0MCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShTRVhfRiA9IGZjdF9yZWNvZGUoU0VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmVtYWxlIiA9ICIyIikpICU+JQogICAgICAgIG11dGF0ZShSQUNFX0YgPSBmY3RfY29sbGFwc2UoUkFDRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGUiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxhY2siID0gYygiMDIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNpYW4iID0gYygiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLCAiMTQiLCAiMTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNiIsICIxNyIsICIyMCIsICIyMSIsICIyMiIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsICIzMCIsICIzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMyIiwgIjk2IiwgIjk3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyL1VuayIgPSBjKCIwMyIsICI5OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1BBTklDID0gZmN0X2NvbGxhcHNlKFNQQU5JU0hfSElTUEFOSUNfT1JJR0lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiA9IGMoIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSBjKCI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU5TVVJBTkNFX0YgPSBmY3RfcmVjb2RlKElOU1VSQU5DRV9TVEFUVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWNhaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FyZSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIEdvdmVybm1lbnQiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWxldmVsKElOU1VSQU5DRV9GLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIikpICU+JQogICAgICAgIG11dGF0ZShJTkNPTUVfRiA9IGZjdF9yZWNvZGUoTUVEX0lOQ19RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gJDM4LDAwMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQzOCwwMDAgLSAkNDcsOTk5IiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDQ4LDAwMCAtICQ2Miw5OTkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNjMsMDAwICsiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKEVEVUNBVElPTl9GID0gZmN0X3JlY29kZShOT19IU0RfUVVBUl8xMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMSUgb3IgbW9yZSIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTMgLSAyMC45JSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyAtIDEyLjklIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gNyUiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFVfUl9GID0gZmN0X2NvbGxhcHNlKFVSX0NEXzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0cm8iID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVyYmFuIiA9IGMoIjQiLCAiNSIsICI2IiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1cmFsIiA9IGMoIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKENMQVNTX09GX0NBU0VfRiA9IGZjdF9jb2xsYXBzZShDTEFTU19PRl9DQVNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsX1BhcnRfUHJpbSA9IGMoIjEwIiwgIjExIiwgIjEyIiwgIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNCIsICIyMCIsICIyMSIsICIyMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJfRmFjaWxpdHkgPSBjKCIwMCIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEdSQURFX0YgPSBmY3RfcmVjb2RlKEdSQURFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIEk6IFdlbGwgRGlmZiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSUk6IE1vZCBEaWZmIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSUk6IFBvb3IgRGlmZiIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSVY6IFVuZGlmZi9BbmFwbGFzdGljIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQS9Vbmtvd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1RPTE9HWV9GID0gZmN0X2luZnJlcShISVNUT0xPR1kpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmYWN0b3IoSElTVE9MT0dZX0YpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0ZfTElNID0gZmN0X2x1bXAoSElTVE9MT0dZX0YsIHByb3AgPSAwLjA1KSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVjb2RlKFROTV9DTElOX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9UID0gZmN0X3JlbGV2ZWwoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9OID0gZmN0X3JlY29kZShUTk1fQ0xJTl9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fTSA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9UID0gZmN0X3JlbGV2ZWwoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9OID0gZmN0X3JlY29kZShUTk1fUEFUSF9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfTSA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fQ0xJTl9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fUEFUSF9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlMgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJlc2lkdWFsIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc2lkdWFsLCBOT1MiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgUmVzaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFjcm9zY29waWMgUmVzaWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGV2YWx1YWJsZSIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlNfWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnL1Vuay9OQSIgPSBjKCI3IiwgIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFJFQURNX0hPU1BfMzBfREFZU19GID0gZmN0X3JlY29kZShSRUFETV9IT1NQXzMwX0RBWVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZ19vcl9Ob19SZWFkbWl0IiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnBsYW5fUmVhZG1pdF9TYW1lIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuX1JlYWRtaXRfU2FtZSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhblVucGxhbl9TYW1lIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI0IikpICU+JQogICAgICAgIG11dGF0ZShSWF9TVU1NX1JBRElBVElPTl9GID0gZmN0X3JlY29kZShSWF9TVU1NX1JBRElBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmVhbSBSYWRpYXRpb24iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9hY3RpdmUgSW1wbGFudHMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9pc290b3BlcyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtICsgSW1wIG9yIElzb3RvcGVzIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZGlhdGlvbiwgTk9TIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl8zMF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfMzBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfMzAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfMzAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl85MF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfOTBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfOTAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfOTAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YgPSBmY3RfcmVjb2RlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVnX0x5bXBoVmFzY19JbnYiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zX0x1bXBoVmFzY19JbnYiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiA9IGZjdF9yZWNvZGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZyIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X0Fzc2lzdCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X3RvX09wZW4iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbmRvX0xhcCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwX3RvX09wZW4iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuX1Vua25vd24iID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShBbGwgPSAiQWxsIikgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9IGZhY3RvcihBbGwpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcgZHVlIHRvIHB0IGZhY3RvcnMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHB0IHJlZnVzZWQiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19URiA9IGNhc2Vfd2hlbihTVVJHRVJZX1lOID09ICJZZXMiIH4gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJHRVJZX1lOID09ICJObyIgfiBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gTkEpKSAgJT4lCiAgICAgICAgbXV0YXRlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBwZXJmb3JtZWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJhZCBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkLCBwdCBkaWVkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgdW5rIGlmIGRvbmUiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1JBRElBVElPTiA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdSQURfU0VRX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIG9yIFN1cmcgb3IgUmFkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgU3VyZyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIGJlZm9yZSBSYWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCBwbHVzIG90aGVyIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUSA9IGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gZmN0X3JlbGV2ZWwoU1VSR19SQURfU0VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIpKSAlPiUKICAgICAgICBtdXRhdGUoQ0hFTU9fWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9DSEVNTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiLCAiMDIiLCAiMDMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiwgRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoQ0hFTU9fWU4gPT0gIlVrbiIsIE5BLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpKSkKCmZhY3RfdmFyc18yIDwtIGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkFHRV9GIiwgIlNFWF9GIiwgIlJBQ0VfRiIsCiAgICAgICAgICAgICAgICAgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwKICAgICAgICAgICAgICAgICAiQ0RDQ19UT1RBTF9CRVNUIiwgIkNMQVNTX09GX0NBU0VfRiIsICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZIiwKICAgICAgICAgICAgICAgICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwKICAgICAgICAgICAgICAgICAiTUFSR0lOUyIsICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAibWV0c19hdF9keCIpCgoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGVfYXQoZmFjdF92YXJzXzIsIGZ1bnMoZmFjdG9yKC4pKSkKCmBgYAoKCiMgRXh0cmFjdCBEYXRhIG9mIEludGVyZXN0CgpgYGB7cn0KCgojIE5vbi1Ib2Rna2luIEx5bXBob21hIFNpdGVzCnNpdGVfY29kZSA8LSBjKCAKI2FkZGl0aW9uYWwgc2l0ZXMKCiAjbGlwICAKICAiQzAwMCIsICJDMDAxIiwgIkMwMDIiLCAiQzAwMyIsICJDMDA0IiwgIkMwMDUiLCJDMDA2IiwgIkMwMDgiLCJDMDA5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3NraW4vbWVsYW5vbWEKICAiQzQ0MCIsICJDNDQxIiwgIkM0NDIiLCAiQzQ0MyIsICJDNDQ0IiwgIkM0NDUiLCAiQzQ0NiIsICJDNDQ3IiwgIkM0NDgiLCAiQzQ0OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2JyZWFzdCAtIG5pcHBsZQogICJDNTAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiN2YWdpbmEvdnVsdmEKICAiQzUxMCIsICJDNTExIiwgIkM1MTIiLCAiQzUxOCIsICJDNTE5IiwgIkM1MjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKI3BlbmlzCiAiQzYwMCIsICJDNjAxIiwgIkM2MDIiLCAiQzYwOCIsICJDNjA5IiwgIkM2MzkiKQoKI215Y29zaXMgZnVuZ29pZGVzLCBTZXphcnkgc3luZHJvbWUsIHN1YmN1dGFuZW91cyBwYW5uaWN1bGl0aXMtbGlrZSBULWNlbGwgbHltcGhvbWEsCiNjdXRhbmVvdXMgVC1jZWxsIGx5bXBob21hLCBOT1MsIHByaW1hcnkgY3V0YW5lb3VzIENEMzArVC1jZWxsIGx5bXBob21hLCAKI05LL1QtY2VsbCBseW1waG9tYSwgcHJpbWFyeSBjdXRhbmVvdXMgZ2FtbWEtZGVsdGEgVC1jZWxsIGx5bXBob21hLCAKI2FuZCBibGFzdGljIE5LIGNlbGwgbHltcGhvbWEsIHJlc3BlY3RpdmVseQpoaXN0b19jb2RlIDwtIGMoIjk3MDAiLCAiOTcwMSIsICI5NzA4IiwgIjk3MDkiLCAiOTcxOCIsICI5NzE5IiwgIjk3MjYiLCAiOTcyNyIpCgpiZWhhdmlvcl9jb2RlIDwtIGMoIjMiKQoKZGF0YSA8LSBkYXQgJT4lCiAgICAgICAgZmlsdGVyKEJFSEFWSU9SICVpbiUgYmVoYXZpb3JfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKFBSSU1BUllfU0lURSAlaW4lIHNpdGVfY29kZSkgJT4lCiAgICAgICAgZmlsdGVyKEhJU1RPTE9HWSAlaW4lIGhpc3RvX2NvZGUpICU+JQogICAgICAgICNmaWx0ZXIoQUdFID49IDE4KSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoUFVGX1ZJVEFMX1NUQVRVUykgPT0gRkFMU0UpICU+JQogICAgICAgIGZpbHRlcihpcy5uYShEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMpID09IEZBTFNFKSAgJT4lCiAgICAgICAgZmlsdGVyKFNFUVVFTkNFX05VTUJFUiA9PSAiMDAiKSAKCiNmaWxlX3BhdGggPC0gYygiL1VzZXJzL2JlYXN0YXRsaWZlL0dvb2dsZSBEcml2ZS9QZW5uL1Jlc2VhcmNoL0JhcmJpZXJpL05DREIiKQojc2F2ZShkYXRhLAojICAgICAgZmlsZSA9IHBhc3RlMChmaWxlX3BhdGgsICIvQ1RDTF9kYXRhLlJkYSIpKQpgYGAKCmBgYHtyIGxvYWREYXRhfQojbG9hZCgiTUZfZGF0YS5SZGEiKQpgYGAKCgpEYXRhIGluY2x1ZGluZyBza2luIHR1bW9ycyB3YXMgb2J0YWluZWQgZnJvbSB0aGUgTkNCRCBvbiBPY3RvYmVyIDcsIDIwMTkuIENhc2VzIHRoYXQgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIGFuYWx5c2lzIHdlcmUgdGhvc2Ugd2l0aDoKCjEuIFNpdGUgY29kZXM6IGByIHNpdGVfY29kZWAKMi4gSGlzdG9sb2d5IGNvZGVzOiBgciBoaXN0b19jb2RlYAozLiBCZWhhdmlvciBjb2RlczogYHIgYmVoYXZpb3JfY29kZWAKCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgZGlkbid0IGhhdmUgdmFsdWVzIGZvciBlaXRoZXIgZm9sbG93IHVwIG9yIHZpdGFsIHN0YXR1cy4KClBhdGllbnRzIHdlcmUgZXhjbHVkZWQgaWYgdGhleSBoYWQgc3VyZ2VyeSB0byBhIGRpc3RhbnQgc2l0ZSB1c2luZyBgUlhfU1VNTV9TVVJHX09USF9SRUdESVNgLiBUaGlzIHdhcyBkb25lIHRvIGF2b2lkIGNvbmZvdW5kaW5nIG9mIGRpZmZlcmVudCBzdXJnaWNhbCBwcm9jZWR1cmVzLiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHN1cmdlcnkgYXQgdGhlIHByaW1hcnkgc2l0ZS4gVGhlc2UgZGlzdGFudCBzaXRlIHN1cmdlcmllcyB3ZXJlIGJlaW5nIGNvdW50ZWQgaW4gdGhlIHN1cmdlcnkvcmFkaWF0aW9uIHNlcXVlbmNlIGFuZCB0aHVzIHRvIHNpbXBsaWZ5IGFuYWx5c2lzIHRoZXkgd2VyZSByZW1vdmVkLiAKCmBgYHtyfQoKZGF0YSAlPiUKICAgICAgICBDcmVhdGVUYWJsZU9uZShkYXRhID0gLiwKICAgICAgICAgICAgICAgICAgICAgdmFycyA9IGMoIlJYX1NVTU1fU1VSR19PVEhfUkVHRElTIiksCiAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVOQSA9IFRSVUUpICU+JQogICAgICAgIHByaW50KC4sCiAgICAgICAgICAgICAgc2hvd0FsbExldmVscyA9IFRSVUUpCgpkYXRhIDwtIGRhdGEgJT4lCiAgICAgICAgZmlsdGVyKFJYX1NVTU1fU1VSR19PVEhfUkVHRElTID09ICIwIikgCmBgYAoKClJhY2Ugd2FzIGdyb3VwZWQgYXMgd2hpdGUsIGJsYWNrLCBhc2lhbiwgb3RoZXIvdW5rbm93bgpTdGFnZSB3YXMgZ3JvdXBlZCBpbnRvIDAsIEksIElJLCBJSUksIElWLCBOQV9Vbmtub3duLCBzdGFnZSAwIHdhcyByZW1vdmVkCldoZXRoZXIgc3VyZ2VyeSB3YXMgcGVyZm9ybWVkIHdhcyBiYXNlZCBvbiB0aGUgYFJFQVNPTl9GT1JfTk9fU1VSR0VSWWAgdmFyaWFibGUuIFRoZSBgU1VSR0VSWV9ZTmAgdmFyaWFibGUgd2FzIGNsYXNzaWZpZWQgYXMgJ1llcycsICdObycsIG9yICdVbmtub3duJy4KCgpXaGV0aGVyIHJhZGlhdGlvbiB3YXMgcGVyZm9ybWVkIHdhcyBiYXNlZCBvbiB0aGUgYFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OYCB2YXJpYWJsZS4gVGhlIGBSQURJQVRJT05fWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKCiNUYWJsZSBvZiB2YXJpYWJsZXMgZm9yIGFsbCBjYXNlczoKCgoKYGBge3J9CnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgIkJFSEFWSU9SIiwgIkdSQURFX0YiLAogICAgICAgICAgICAgICAgICJEWF9TVEFHSU5HX1BST0NfREFZUyIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwKICAgICAgICAgICAgICAgICAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCAiRFhfUlhfU1RBUlRFRF9EQVlTIiwgIkRYX1NVUkdfU1RBUlRFRF9EQVlTIiwKICAgICAgICAgICAgICAgICAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLCAiTUFSR0lOUyIsICJNQVJHSU5TX1lOIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLAogICAgICAgICAgICAgICAgICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwgCiAgICAgICAgICAgICAgICAgIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgIlNVUkdfUkFEX1NFUSIsCiAgICAgICAgICAgICAgICAgIlNVUkdfUkFEX1NFUV9DIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiLCAiRVhQTl9HUk9VUCIpKQpgYGAKCmBgYHtyfQoKcHJlRXhwTWVkaWNhcmUgIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iICYgSU5TVVJBTkNFX0YgPT0gIk1lZGljYXJlIikpCnBvc3RFeHBNZWRpY2FyZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKCiMgcCA9IDAuMjUgd2hlbiBjb21wYXJpbmcgY2hhbmdlIGluIHByb3BvcnRpb24gb2YgcGF0aWVudHMgd2l0aCBNZWRpY2FyZSBiZWZvcmUgYW5kIGFmdGVyIEFDQSBleHBhbnNpb24KcHJvcC50ZXN0KGMocHJlRXhwTWVkaWNhcmUsIHBvc3RFeHBNZWRpY2FyZSksIAogICAgICAgICAgYyhucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikpLCBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpKSkpCgpwcmVFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQcmUtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyKElOU1VSQU5DRV9GID09ICJOb25lIikpCnBvc3RFeHBOb0luc3VyYW5jZSA8LSBucm93KGRhdGEgJT4lIGZpbHRlcihFWFBOX0dST1VQID09ICJQb3N0LUV4cGFuc2lvbiIpICU+JSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKCiMgU2lnbmlmaWNhbnQgZGVjcmVhc2UgaW4gdGhlIG92ZXJhbGwgcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRob3V0IGluc3VyYW5jZSBhZnRlciBBQ0EgZXhwYW5zaW9uIApwcm9wLnRlc3QoYyhwcmVFeHBOb0luc3VyYW5jZSwgcG9zdEV4cE5vSW5zdXJhbmNlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnBfdGFibGUobm9fRXhjbHVkZXMsIHN0cmF0YSA9ICJFWFBOX0dST1VQIiwgdmFycyA9ICJEWF9SWF9TVEFSVEVEX0RBWVMiKQoKZGF0YSA8LSBkYXRhICU+JSBtdXRhdGUoSW5zdXJlZCA9IElOU1VSQU5DRV9GICE9ICJVbmtub3duIikKCmBgYAoKCgoKI0thcGxhbiBNZWllciBBbmFseXNpcwoKCiMjQWxsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJBbGwiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBUeXBlCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX1RZUEVfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IExvY2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9MT0NBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgR2VvZ3JhcGh5CgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJGQUNJTElUWV9HRU9HUkFQSFkiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQWdlIEdyb3VwCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFHRV80MCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0dlbmRlcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU0VYX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSQUNFX0YKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBQ0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0hpc3BhbmljCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNQQU5JQyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0luc3VyYW5jZSBTdGF0dXMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIklOU1VSQU5DRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjT3ZlcmFsbCBTdXJ2aXZhbCBwcmUvcG9zdC1BQ0EgZXhwYW5zaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFWFBOX0dST1VQIiwgZGF0YV9pbXAgPSBub19FeGNsdWRlcykKYGBgCgoKPCEtLSAjI0luY29tZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIGNsYXNzKGRhdGEkSU5DT01FX0YpIC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiSU5DT01FX0YiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjRWR1Y2F0aW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJFRFVDQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1VyYmFuL1J1cmFsCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJVX1JfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsYXNzICh0cmVhdG1lbnQgYXQgcGVyZm9ybWluZyBmYWNpbGl0eSkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNMQVNTX09GX0NBU0VfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1llYXIKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIllFQVJfT0ZfRElBR05PU0lTIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUHJpbWFyeSBTaXRlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTSVRFX1RFWFQiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjSGlzdG9sb2d5CgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiSElTVE9MT0dZX0ZfTElNIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNCZWhhdmlvciAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiQkVIQVZJT1IiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjR3JhZGUKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJHUkFERV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgVCBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NsaW5pY2FsIE4gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0NsaW5pY2FsIE0gU3RhZ2UgLS0+Cgo8IS0tIGBgYHtyfSAtLT4KPCEtLSB1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX00iLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiMjQ2xpbmljYWwgU3RhZ2UgR3JvdXAKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9DTElOX1NUQUdFX0dST1VQIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBUIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBOIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9OIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBNIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9NIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjUGF0aG9sb2dpYyBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX1BBVEhfU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIk1BUkdJTlMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNYXJnaW5zIFllcy9ObwpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOU19ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojIzMwIERheSBSZWFkbWlzc2lvbgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkVBRE1fSE9TUF8zMF9EQVlTX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gVHlwZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfU1VNTV9SQURJQVRJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNMeW1waG92YXNjdWxhciBJbnZhc2lvbgoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkxZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNFbmRvc2NvcGljL1JvYm90aWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1N1cmdlcnkgUmFkaWF0aW9uIFNlcXVlbmNlIAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR19SQURfU0VRIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNVUkdFUllfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNSYWRpYXRpb24gWWVzL05vCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSQURJQVRJT05fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDaGVtbyBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkNIRU1PX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI1RyZWF0bWVudCBZZXMvTm8KYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVHhfWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNNZXRhc3Rhc2VzIGF0IER4CmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIm1ldHNfYXRfZHhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjVHVtb3IgU2l6ZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVF9TSVpFIiwgZGF0YV9pbXAgPSBkYXRhKSAtLT4KPCEtLSBgYGAgLS0+CgojVHVtb3Igc3BlY2lmaWMgVmFyaWFibGVzCgoKIyMjTm9kZSBTaXplCgoKI0NveCBQcm9wb3J0aW9uYWwgSGF6YXJkIFJhdGlvCgojI01vZGVsICMxCgojIyNGdWxsIGFuYWx5c2lzCgpgYGB7cn0KbW9kZWxfb25lIDwtIGNveHBoKFN1cnYoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTLCBQVUZfVklUQUxfU1RBVFVTID09IDApCiAgICAgICAgICAgICAgICAgICAgIH4gU1VSR19SQURfU0VRICsgSU5TVVJBTkNFX0YgKyBBR0UgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GLAogICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSkKbW9kZWxfb25lICU+JSBzdW1tYXJ5KCkKCgpgYGAKCiMjI1N1bW1hcnkgb2YgTW9kZWwKCmBgYHtyfQptb2RlbF9vbmUgJT4lCiAgICAgICAgdGlkeSguLCBleHBvbmVudGlhdGUgPSBUUlVFKSAlPiUKICAgICAgICBzZWxlY3QodGVybSwgZXN0aW1hdGUsIGNvbmYubG93LCBjb25mLmhpZ2gsIHAudmFsdWUpICU+JQogICAgICAgIHJlbmFtZShWYXJpYWJsZSA9IHRlcm0sCiAgICAgICAgICAgICAgIEhhemFyZF9SYXRpbyA9IGVzdGltYXRlKSAlPiUKICAgICAgICB0YmxfZGYgJT4lCiAgICAgICAgcHJpbnQobiA9IG5yb3coLikpCgpgYGAKCiMgUHJlZGljdGlvbiBMb2dpc3RpYyBSZWdyZXNzaW9uIE1vZGVscwoKIyMgU3VyZ2VyeQpgYGB7cn0KCm5vX1VrbnMgPC0gZGF0YSAlPiUKICBmaWx0ZXIoU1VSR0VSWV9ZTiAhPSAiVWtuIikgJT4lIAogIGRyb3BsZXZlbHMoKSAlPiUgCiAgbXV0YXRlKFNVUkdFUllfWU4gPSBhcy5sb2dpY2FsKFNVUkdFUllfWU4pKQoKZml0X3N1cmcgPC0gZ2xtKFNVUkdfVEYgfiBBR0VfRiArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YgKyBFWFBOX0dST1VQLAogICBkYXRhID0gbm9fVWtucykKCnN1bW1hcnkoZml0X3N1cmcpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfc3VyZyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYAoKIyMgTWV0YXN0YXNpcyBhdCBUaW1lIG9mIERpYWdub3NpcwpgYGB7cn0KIyBsaW1pdCB0byB0aG9zZSBjYXNlcyB3aGVyZSBkYXRhIGFib3V0IGV4cGFuc2lvbiBzdGF0dXMgaXMgYXZhaWxhYmxlICg+IEFnZSAzOSwgbm9uLWFtYmlndW91cyBzdGF0dXMgc3RhdGVzKQoKZml0X21ldHMgPC0gZ2xtKG1ldHNfYXRfZHhfRiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19FeGNsdWRlcykKCnN1bW1hcnkoZml0X21ldHMpCgpleHAoY2JpbmQoIk9kZHMgcmF0aW8iID0gY29lZihmaXRfbWV0cyksIGNvbmZpbnQuZGVmYXVsdChmaXRfc3VyZywgbGV2ZWwgPSAwLjk1KSkpCmBgYA==